DNS应答报文分析

news2024/11/13 13:02:22

目录

DNS应答以太网数据帧

1. 数据链路层

1.1 以太网首部:(目的MAC地址6字节)(源MAC地址6字节)(帧类型2字节)共14字节

1.2 以太网首部数据

2. 网络层

2.1 IP协议头部共20个字节

2.2 IP协议头部数据

3. 传输层

3.1 UDP头部共8字节

3.2 UDP头部数据

4. 应用层

4.1 DNS应答数据报

4.2 DNS协议头部 (12字节)

4.3 查询问题部分 (19字节)

4.4 应答资源记录1 (30字节)

4.5 应答资源记录2 (16字节)

4.6 应答资源记录3 (16字节)

4.7 授权资源记录1 (18字节)

4.8 授权资源记录2 (18字节)

4.9 授权资源记录3 (18字节)

4.10 授权资源记录4 (18字节)

4.11 授权资源记录5 (18字节)

4.12 额外资源记录1

4.13 额外资源记录2

4.14 额外资源记录3

4.15 额外资源记录4

4.16 额外资源记录5

4.17 额外资源记录6

4.18 额外资源记录7

4.19 额外资源记录8

4.20 额外资源记录9


本文是以下博文链接的延续,看完整的DNS查询和应答报文解析,可先阅读以下博文

DNS查询报文分析-CSDN博客

DNS应答以太网数据帧

3c:6a:48:e2:d5:67 > 00:0c:29:83:72:68, ethertype IPv4 (0x0800), length 393: 192.168.0.1.domain > 192.168.0.155.48516: 50690 3/5/9 CNAME www.a.shifen.com., A 183.240.98.161, A 183.240.98.198 (351)
        0x0000:  000c 2983 7268 3c6a 48e2 d567 0800 4574  ..).rh<jH..g..Et
        0x0010:  017b 4c5f 0000 3411 b6b2 c0a8 0001 c0a8  .{L_..4.........
        0x0020:  009b 0035 bd84 0167 933f c602 8180 0001  ...5...g.?......
        0x0030:  0003 0005 0009 0377 7777 0562 6169 6475  .......www.baidu
        0x0040:  0363 6f6d 0000 0100 01c0 0c00 0500 0100  .com............
        0x0050:  0001 2c00 1203 7777 7701 6106 7368 6966  ..,...www.a.shif
        0x0060:  656e 0363 6f6d 00c0 2b00 0100 0100 0001  en.com..+.......
        0x0070:  2c00 04b7 f062 a1c0 2b00 0100 0100 0001  ,....b..+.......
        0x0080:  2c00 04b7 f062 c6c0 2f00 0200 0100 0002  ,....b../.......
        0x0090:  3100 0603 6e73 34c0 2fc0 2f00 0200 0100  1...ns4././.....
        0x00a0:  0002 3100 0603 6e73 31c0 2fc0 2f00 0200  ..1...ns1././...
        0x00b0:  0100 0002 3100 0603 6e73 33c0 2fc0 2f00  ....1...ns3././.
        0x00c0:  0200 0100 0002 3100 0603 6e73 35c0 2fc0  ......1...ns5./.
        0x00d0:  2f00 0200 0100 0002 3100 0603 6e73 32c0  /.......1...ns2.
        0x00e0:  2fc0 6900 0100 0100 0000 ec00 040e d7b1  /.i.............
        0x00f0:  e5c0 6900 0100 0100 0000 ec00 046f 1404  ..i..........o..
        0x0100:  1cc0 9f00 0100 0100 0000 2200 04b4 4c4c  .........."...LL
        0x0110:  5fc0 7b00 0100 0100 0000 2b00 046e f244  _.{.......+..n.D
        0x0120:  2ac0 b100 0100 0100 0000 d000 04dc b521  *..............!
        0x0130:  20c0 8d00 0100 0100 0000 3100 0424 9b84  ..........1..$..
        0x0140:  0cc0 8d00 0100 0100 0000 3100 0499 03ee  ..........1.....
        0x0150:  a2c0 9f00 1c00 0100 0001 f100 1024 0e00  .............$..
        0x0160:  bfb8 0110 0600 0000 ffb0 4f34 6bc0 9f00  ..........O4k...
        0x0170:  1c00 0100 0001 f100 1024 0e09 4006 0300  .........$..@...
        0x0180:  0a00 0000 ffb0 8d23 9d                   .......#.

1. 数据链路层

1.1 以太网首部:(目的MAC地址6字节)(源MAC地址6字节)(帧类型2字节)共14字节

1.2 以太网首部数据
000c 2983 7268 3c6a 48e2 d567 0800

0x000c 2983 7268:对应的是目的MAC地址6字节,也就是接收方主机192.168.0.155的MAC地址

0x3c6a 48e2 d567:对应的是源MAC地址6字节,也就是发送方主机192.168.0.1的MAC地址

0x0800:对应的是帧类型,是用来区分上层协议的(即网络层),0x0800表示这帧是IP协议数据报,我们就可以根据这个帧类型在网络层怎么去解析数据报了

2. 网络层

2.1 IP协议头部共20个字节

2.2 IP协议头部数据
4574 017b 4c5f 0000 3411 b6b2 c0a8 0001 c0a8 009b

0x4574:对应的是(4位版本号)(4位头部长度)(8位服务类型TOS)。

               高字节数据 0x45 中的前4位是IP版本号,值为 4 说明这是IPv4

               高字节数据 0x45 中的低4位是IP头部长度,标识IP头部有多少个4字节,值为 5 说明IP头部有20字节。

               低字节数据 0x74 是8位数据报服务类型。

0x017b:对应的是16位总长度(单位:字节),即在该层中报文(包括IP协议头部和上层数据报) 379 字节

0x4c5f:对应的是 16位标识,唯一标识主机发送的每一个数据报,主机192.168.0.155查询时,随机生成的,所以应答时,应该原封不动将该值发回给查询的主机。

0x0000:该16位数据对应的是(3位标志)(13位片偏移),高3位为 0b000,最高位为 0,保留位,中间位为 0,表示允许分片,低位为 0 表示这是最后一个分片。因为这个数据报的总长度为 0x017b,即 379 字节,没有分片,所以这13位的值为0

0x3411:对应的是(8位生存时间TTL)(8位协议)

               高8位为 0x34,即十进制 52,数据报到达目的地之前允许经过的路由器跳数。

               低8位为 0x11,即十进制 17,是用来区分上层协议(即传输层),在 /etc/protocols 可以查询,比如,1是 icmp,6是 tcp,17是 udp 

0xb6b2:对应的是16位头部校验和(header checksum) 由发送端填充, 接收端对其使用CRC算法以检验IP数据报头部(注意, 仅检验头部) 在传输过程中是否损坏。

0xc0a8 0001:对应的是32位发送方IP地址,应答的发送方是网关 192.168.0.1,用点分十六进制就是 0xc0.80.0.1

0xc0a8 009b:对应的是32位接收方IP地址,我们的接收方是主机 192.168.0.155,用点分十六进制就是 0xc0.80.0.9b

3. 传输层

3.1 UDP头部共8字节

3.2 UDP头部数据
0035 bd84 0167 933f

0x0035:对应的是16位源端口号,即十进制 53

0xbd84:对应的是16位目的端口口,即十进制 48516

0x0167:对应的是16位UDP长度,即十进制 359

0x933f:对应的是16位UDP校验和

4. 应用层

4.1 DNS应答数据报
                                          c602 8180 0001  ...5...g.?......
        0x0030:  0003 0005 0009 0377 7777 0562 6169 6475  .......www.baidu
        0x0040:  0363 6f6d 0000 0100 01c0 0c00 0500 0100  .com............
        0x0050:  0001 2c00 1203 7777 7701 6106 7368 6966  ..,...www.a.shif
        0x0060:  656e 0363 6f6d 00c0 2b00 0100 0100 0001  en.com..+.......
        0x0070:  2c00 04b7 f062 a1c0 2b00 0100 0100 0001  ,....b..+.......
        0x0080:  2c00 04b7 f062 c6c0 2f00 0200 0100 0002  ,....b../.......
        0x0090:  3100 0603 6e73 34c0 2fc0 2f00 0200 0100  1...ns4././.....
        0x00a0:  0002 3100 0603 6e73 31c0 2fc0 2f00 0200  ..1...ns1././...
        0x00b0:  0100 0002 3100 0603 6e73 33c0 2fc0 2f00  ....1...ns3././.
        0x00c0:  0200 0100 0002 3100 0603 6e73 35c0 2fc0  ......1...ns5./.
        0x00d0:  2f00 0200 0100 0002 3100 0603 6e73 32c0  /.......1...ns2.
        0x00e0:  2fc0 6900 0100 0100 0000 ec00 040e d7b1  /.i.............
        0x00f0:  e5c0 6900 0100 0100 0000 ec00 046f 1404  ..i..........o..
        0x0100:  1cc0 9f00 0100 0100 0000 2200 04b4 4c4c  .........."...LL
        0x0110:  5fc0 7b00 0100 0100 0000 2b00 046e f244  _.{.......+..n.D
        0x0120:  2ac0 b100 0100 0100 0000 d000 04dc

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

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

相关文章

低空经济第一站:无人机飞手人才培养技术详解

在低空经济蓬勃发展的背景下&#xff0c;无人机飞手作为直接操作者和应用者&#xff0c;其人才培养技术成为推动这一新兴经济形态持续健康发展的关键。以下是对无人机飞手人才培养技术的详细解析&#xff1a; 一、培养目标 无人机飞手的培养旨在培养具备扎实无人机操作技能、…

_Array类,类似于Vector,其实就是_string

例子&#xff1a; using namespace lf; using namespace std;int main() {_Array<int> a(10, -1);_Array<_string> s { _t("one"), _t("two") };_pcn(a);_pcn(s);} 结果&#xff1a; 源代码_Array.h&#xff1a; /***********************…

el-table 的单元格 + 图表 + 排序

<el-table border :data"tableDataThree" height"370px" style"width: 100%"><el-table-column :key"activeName 8" width"50" type"index" label"序号" align"center"></el…

macOS系统Homebrew工具安装及使用

1.打开Homebrew — The Missing Package Manager for macOS (or Linux) 2.复制安装命令到终端执行 复制 执行 3. 开始自动安装过程 4.安装成功 5.使用brew安装wget工具

第L6周:机器学习-随机森林(RF)

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 目标&#xff1a; 1.什么是随机森林&#xff08;RF&#xff09; 随机森林&#xff08;Random Forest, RF&#xff09;是一种由 决策树 构成的 集成算法 &#…

WebSocket vs. Server-Sent Events:选择最适合你的实时数据流技术

引言&#xff1a; 在当今这个信息爆炸的时代&#xff0c;用户对于网页应用的实时性要求越来越高。从即时通讯到在线游戏&#xff0c;再到实时数据监控&#xff0c;WebSocket技术因其能够实现浏览器与服务器之间的全双工通信而受到开发者的青睐。 WebSocket技术为现代Web应用…

java计算机毕设课设—电子政务网系统(附源码、文章、相关截图、部署视频)

这是什么系统&#xff1f; 资源获取方式在最下方 java计算机毕设课设—电子政务网系统(附源码、文章、相关截图、部署视频) 电子政务网系统主要用于提升政府机关的政务管理效率&#xff0c;核心功能包括前台网站展示、留言板管理、后台登录与密码修改、网站公告发布、政府部…

高级Java程序员必备的技术点:你准备好了吗?

在Java编程的世界里&#xff0c;成为一名高级程序员不仅需要深厚的基础知识&#xff0c;还需要掌握一系列高级技术和最佳实践。这些技术点是通向技术专家之路的敲门砖&#xff0c;也是应对复杂项目挑战的利器。本文将探讨高级Java程序员必备的技术点&#xff0c;帮助你自我提升…

VS code 安装使用配置 Continue

Continue 插件介绍 Continue 是一款高效的 VS Code 插件&#xff0c;提供类似 GitHub Copilot 的功能&#xff0c;旨在提升开发者的编程效率。其配置简单&#xff0c;使用体验流畅&#xff0c;深受开发者喜爱。 主要功能特点 智能代码补全 Continue 能够基于当前代码上下文生…

MATLAB 可视化基础:绘图命令与应用

目录 1. 绘制子图1.1基本绘图命令1.2. 使用 subplot 函数1.3. 绘图类型 2.MATLAB 可视化进阶(以下代码均居于以上代码的数据定义上实现)2.1. 极坐标图2.3. 隐函数的绘制 3.总结 在数据分析和科学计算中&#xff0c;数据可视化是理解和解释结果的关键工具。今天&#xff0c;我将…

Javaの运算符 Day5

1. 算数运算符 1.1 二元运算符&#xff08;两个操作数&#xff09;的算数运算符 操作符描述求和-求差*求积/求商%求余 代码举例 public class TestOperator {public static void main(String[] args) {int a 20;int b 12;System.out.println(a b);System.out.println(a …

【算法】队列与BFS

【ps】本篇有 4 道 leetcode OJ。 目录 一、算法简介 二、相关例题 1&#xff09;N 叉树的层序遍历 .1- 题目解析 .2- 代码编写 2&#xff09;二叉树的锯齿形层序遍历 .1- 题目解析 .2- 代码编写 3&#xff09;二叉树最大宽度 .1- 题目解析 .2- 代码编写 4&#xf…

UART协议

目录 一、概述二、帧格式起始位数据位奇偶校验位停止位 三、数据传输过程四、串行通信接口RS232RS422RS485 五、UART环回程序设计 参考&#xff1a;正点原子FPGA开发指南 一、概述 UART&#xff08;通用异步收发器&#xff09;是一种异步、全双工的串行通信总线&#xff0c;在…

CGAL 从DSM到DTM holefilling remeshing

CGAL 从DSM到DTM holefilling & remeshing 上一节简单地删除被建筑物覆盖的大片区域中的顶点会导致大的Delaunay三角面&#xff0c;从而得到了较差的DTM&#xff0c;所以一个额外的步骤可以帮助产生更好的形状网格:删除大于阈值的面&#xff0c;并用孔洞填充算法进行三角化…

C++速通LeetCode简单第17题-爬楼梯

思路要点&#xff1a;将问题转化为求斐波那契数列的第n项&#xff0c;然后迭代。 思路分析&#xff1a;最后一次爬的阶数不是1就是2&#xff0c;假设爬n阶的方法数是f(n)&#xff0c;假设最后一次爬1阶&#xff0c;那么爬前面的 n-1阶的方法数是f(n-1)&#xff1b;假设最后一次…

力扣题解2848

大家好&#xff0c;欢迎来到无限大的频道。 今日继续给大家带来力扣题解。 题目描述&#xff08;简单&#xff09;&#xff1a; 与车相交的点 给你一个下标从 0 开始的二维整数数组 nums 表示汽车停放在数轴上的坐标。对于任意下标 i&#xff0c;nums[i] [starti, endi] &…

熵权法详细讲解+Python代码实现

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

大数据新视界 --大数据大厂之 Cassandra 分布式数据库:高可用数据存储的新选择

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

基于单片机的超声波液位检测系统(论文+源码)

1总体设计 本课题为基于单片机的超声波液位检测系统的设计&#xff0c;系统的结构框图如图2.1所示。其中包括了按键模块&#xff0c;温度检测模块&#xff0c;超声波液位检测模块&#xff0c;显示模块&#xff0c;蜂鸣器等器件设备。其中&#xff0c;采用STC89C52单片机作为主…

2.5 Trigger源码分析 -- ant-design-vue系列

Trigger源码分析 – ant-design-vue系列 1 概述 源码地址&#xff1a; https://github.com/vueComponent/ant-design-vue/blob/main/components/vc-trigger/Trigger.tsx 在源码的实现中&#xff0c;Trigger组件主要有两个作用&#xff1a; 使用Portal组件&#xff0c;把Pop…