免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4589 | 回复: 3
打印 上一主题 下一主题

[DNS] 请教关于DNS压缩的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-19 21:36 |只看该作者 |倒序浏览
DNS的每个标签不能超过63个字符,所以使用一个字节来计数,报文中若有重复的域名或者域名后缀,则采用压缩的方式。
TCP、IP卷一关于DNS压缩的描述:一个域名中的标识符是压缩的,它的“计数”字节中的最高两位将被设置为11。这表示它是一个16 bit指针而不再是8 bit的计数字节。指针中的剩下14 bit表示该标识符在DNS报文中所在的位置偏移。
14 bit表示该标识符在DNS报文中所在的位置偏移”请问怎么理解?

比如解析“www.sina.com.cn”,其A记录对应域名为“ara.sina.com.cn”,抓取的应答包查询报文段中:
“03 61 72 61........ 00” 上图中蓝色部分,解码出来为“ara.sina.com.cn”


应答报文段“ara.sina.com.cn”,见下图蓝色部分,为“0c 0c”转换为二进制则是“1100 0000 0000 1100”该怎么去理解呢?



附解码图:


[ 本帖最后由 silty 于 2009-11-20 09:18 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-11-19 21:38 |只看该作者

论坛徽章:
0
3 [报告]
发表于 2009-11-20 08:55 |只看该作者
偏移量0000开始的14个字节是以太层头部,
偏移量000E开始的20个字节是IP层头部,
偏移量0022开始的8个字节是UDP层头部,
偏移量002A开始是DNS消息包,其中前12个字节是DNS头部,
缩写C00C中,除开最高2位,偏移量为000C,它是相对于002A而言,即指向第0036字节。(03 61 72 61 04 ...)

[ 本帖最后由 diancn 于 2009-11-20 10:09 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2009-11-20 09:15 |只看该作者
非常感谢。

[ 本帖最后由 silty 于 2009-11-20 09:18 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP