Jak*_*ake 5 dns response wireshark web-traffic network-traffic
我一直在关注Wireshark中的DNS响应数据包,并且无法理解答案和权威部分的十六进制编码.
考虑DNS查询:mail.abcd.com
答案部分包含名称字段,其十六进制编码因:
0xc00c
0xc012
Run Code Online (Sandbox Code Playgroud)
它们都导致在该字段中填充整个名称.
权威部分还包含名称字段,但通常为:
0xc010
Run Code Online (Sandbox Code Playgroud)
这导致abcd.com在该领域居住.
任何人都可以告诉填充这些字段的惯例是什么,因为它非常令人困惑.
谢谢
DNS标签使用的格式为<length><data ...>.
标签最长可以是63个字节,因此该<length>字段剩下两个比特.这些用于编码标签类型.
如果前两位是,0b11则剩余的六个位而是与后一个字节组合形成压缩指针,该压缩指针是DNS有效负载内的偏移到另一个标签的先前实例.
由于DNS协议头长度为12个字节,因此最短的合法偏移量为12个字节,给出了您在上面看到的值0xc00c.
[ 技术上,人们可能构造一个指向标题的压缩指针,但它并不严格符合协议].
我强烈建议不要试图从线程数据包中反向设计规范 - 你将不可避免地错过任何东西.只需阅读RFC 1035 - 所有核心内容都在那里.
| 归档时间: |
|
| 查看次数: |
4899 次 |
| 最近记录: |