0

DNSプロトコルについて読んだところ、名前フィールドは2つの方法で記述できることがわかりました。

  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バイトのフィールドが使用され、次のように機能します。すでに存在する名前へのポインタ。

だから、私の質問は、パッケージで使用している最初の方法または2番目の方法をどのように判断できますか?

4

1 に答える 1

1

最初の2ビットは1です。これにより、ラベルは63オクテット以下に制限されているため、ラベルは2つのゼロビットで開始する必要があるため、ポインタをラベルと区別できます。

RFC1035の「4.1.4。メッセージ圧縮」の章を参照してください。

于 2012-04-11T11:27:01.777 に答える