DNS响应应答&;权威部门

DNS响应应答&;权威部门,dns,response,wireshark,web-traffic,network-traffic,Dns,Response,Wireshark,Web Traffic,Network Traffic,我一直在看Wireshark中的DNS响应包,但无法理解答案和权威部分的十六进制编码 正在考虑以下DNS查询:mail.abcd.com 答案部分包含名称字段,其十六进制编码因以下原因而异: 0xc00c 0xc012 两者都会导致在字段中填充整个名称 权威部分还包含名称字段,但其十六进制编码通常为: 0xc010 这将导致在字段中填充abcd.com 谁能告诉我填充这些字段遵循的惯例是什么,因为它非常混乱 谢谢请仔细阅读说明书中的内容。0xc、0x12和0x10是指向数据包中名称“m

我一直在看Wireshark中的DNS响应包,但无法理解答案和权威部分的十六进制编码

正在考虑以下DNS查询:mail.abcd.com

答案部分包含名称字段,其十六进制编码因以下原因而异:

 0xc00c
 0xc012
两者都会导致在字段中填充整个名称

权威部分还包含名称字段,但其十六进制编码通常为:

 0xc010
这将导致在字段中填充abcd.com

谁能告诉我填充这些字段遵循的惯例是什么,因为它非常混乱


谢谢

请仔细阅读说明书中的内容。0xc、0x12和0x10是指向数据包中名称“mail.abcd.com”和“abcd.com”的早期副本的指针。

DNS标签使用
格式

标签的最大长度可能为63字节,因此
字段剩余两位。这些用于对标签类型进行编码

如果前两位为
0b11
,则剩余的六位将与以下字节组合,形成压缩指针,该指针是DNS有效负载内到另一标签先前实例的偏移量

由于DNS协议头的长度为12字节,因此最短的法定偏移量为12字节,给出了您在上面看到的值
0xc00c

[从技术上讲,可以构造指向标头的压缩指针,但它并不严格符合协议]

我强烈建议不要试图对有线数据包的规范进行反向工程——你将不可避免地错过一些东西。只需阅读-所有的核心内容都在那里。

DNS消息使用一个偏移值来表示在消息开始后我们可以找到消息中已包含的域名的字节数

其中,“起始字节的地址”以字节为单位从整个消息的开头开始计算以零作为第一个字节开始计数


因此,在我们的示例中,0xC00C是1100 0000 0000 1100,这意味着1100个偏移量,从整个DNS消息的开始算起,偏移量为12字节,希望有用:但如果实现不符合标准,该怎么办?有可能吗?有可能,但接收者应将其视为错误响应