消息中的域名指针如何指向DNS数据包中的域名?

消息中的域名指针如何指向DNS数据包中的域名?,dns,wireshark,Dns,Wireshark,因此,我最近安装了Wireshark,以了解DNS数据包的外观,并阅读了RFC-1034和RFC-1035。到目前为止,唯一困扰我的是如何在应答/应答部分使用域名指针来指向查询部分的域名 为了深入理解我的问题: 我知道第一个六进制值(c0)允许区分指针 但是下一个值(3a)应该如何将我指向这个数据包中的实际域名?为什么它有一个C标记?为什么这有一个.net标签?你是对的。这个问题与标记无关。@Wyck这根本不应该存在,无论标记是什么,因为这与此阶段的编程无关。您需要查看RFC1035的第4.1

因此,我最近安装了Wireshark,以了解DNS数据包的外观,并阅读了RFC-1034和RFC-1035。到目前为止,唯一困扰我的是如何在应答/应答部分使用域名指针来指向查询部分的域名

为了深入理解我的问题:

我知道第一个六进制值(c0)允许区分指针
但是下一个值(3a)应该如何将我指向这个数据包中的实际域名?

为什么它有一个C标记?为什么这有一个.net标签?你是对的。这个问题与标记无关。@Wyck这根本不应该存在,无论标记是什么,因为这与此阶段的编程无关。您需要查看RFC1035的第4.1.4节。偏移量为2个八位字节序列。前两位是1,您必须忽略它们来计算值。因此
c0 3a
实际上是偏移量值3a(因为c0 base 16是11000000 base 2,所以不需要计算实际偏移量的位,但它不一定总是
c0
作为第一个字节,它可以是高于该值的任何值,然后这些位将需要用于偏移量),因此从消息开始算起58个字节,RFC 1035的4.1.4:“偏移量字段指定从消息开始的偏移量(即域标头中ID字段的第一个八位字节)。零偏移量指定ID字段的第一个字节,等等。”。“ID”是WhiteSharek在顶部“事务ID”处显示的内容。这基本上是DNS数据包的第一个元素。