DNS消息:如何阅读查询和响应消息( 二 )
除了查询条目中找到的相同的3个部分外,答案条目还有3个额外的部分 。
- 存活时间(TTL):记录可以存在的秒数
- 数据长度:数据的长度
- 数据:返回的数据,例如IP地址或CNAME
域名如何在两个字节中编码?
原来 , 这些字节是偏移量,指向查询部分中编码的域名 。
c0是一个开始标记 , 而0c是实际的偏移量,为12 。
我们从消息的开始字节17(在屏幕截图中以红色标记)开始数12个字节 。最后,我们到达第13个字节05,这是image.google.com的开头 , 用黄色标记 。
不复杂,对吧?接下来是一个复杂的例子 。

文章插图
在答案的第二个条目中,名称偏移量为2e,即46个字节 。
通过计算46个字节,我们找到了前一个条目的CNAME中编码的images 。
- 06 → 接下来的6个字节属于同一组
- 69 → i
- 6d → m
- 61 → a
- 67 → g
- 65 → e
- 73 → s
同样,通过计算18个字节,我们到达了绿色标记的引用部分——在前一个条目的名称中的google.com 。
偏移量的想法是一个令人鼓舞的设计 。有了它 , 消息可以节省大量空间 。

文章插图
最后,我们可以解码最后一个答案条目中的地址 。
- ac → 172
- d9 → 217
- 01 → 1
- 0e → 14
- DNS消息中需要注意的是问题数、答案RR数、查询和答案 。前两者是计数,而其他两者是实际数据 。
- 通过理解名称的编码方式,您可以轻松地读取消息的字节 。
推荐阅读
- 如何使用 Linux Xargs 命令,看这篇就够了
- 应该如何跑步?什么是正确的跑步姿势?
- “合胞病毒”究竟是啥?该如何预防?
- 微信如何开通电子医保领取补贴,微信如何领取激活国家医保电子卡
- 如何皈依三宝要多少钱 如何皈依三宝
- 如何在电脑上安装英雄联盟
- 观叶植物的冬季管理等 观叶植物冬季如何管理
- 齿轮打火机的妙用有哪些,齿轮打火机如何更换打火石
- 怎么样做万花筒 如何做万花筒
- 手机QQ浮屏效果如何设置,iqoo手机游戏魔盒怎么设置浮屏