0

我刚刚阅读了有关 DNS 协议的内容,发现名称字段可以通过两种方式编写:

  1. lenght of the next label the label lenght of the next label the label...zero-byte
  2. pointer to the previous name field

接下来是原文片段:

资源记录名称字段的编码方式与问题名称字段相同,除非该名称已出现在 DNS 消息中的其他位置,在这种情况下,使用 2 字节字段代替长度值编码名称并充当指向已经存在的名称的指针。

所以,我的问题是,如何确定在包中使用的第一种或第二种方式?

4

1 回答 1

1

前两位是 1。这允许将指针与标签区分开来,因为标签必须以两个零位开始,因为标签被限制为 63 个八位字节或更少。

请参阅RFC 1035中的“4.1.4. 消息压缩”一章

于 2012-04-11T11:27:01.777 回答