6.1.2. Wire Format (Format fil)
6.1.2. Wire Format (Format fil)
Un RR OPT a une partie fixe et un ensemble variable d'options exprimées sous forme de paires {attribut, valeur}. La partie fixe contient certaines métadonnées DNS, ainsi qu'une petite collection d'éléments d'extension de base que nous prévoyons être si populaires qu'il serait un gaspillage d'espace fil de les encoder sous forme de paires {attribut, valeur}.
La partie fixe d'un RR OPT est structurée comme suit:
+------------+--------------+------------------------------+
| Field Name | Field Type | Description |
+------------+--------------+------------------------------+
| NAME | domain name | MUST be 0 (root domain) |
| TYPE | u_int16_t | OPT (41) |
| CLASS | u_int16_t | requestor's UDP payload size |
| TTL | u_int32_t | extended RCODE and flags |
| RDLEN | u_int16_t | length of all RDATA |
| RDATA | octet stream | {attribute,value} pairs |
+------------+--------------+------------------------------+
La partie variable d'un RR OPT peut contenir zéro ou plusieurs options dans les RDATA. Chaque option DOIT être traitée comme un champ de bits. Chaque option est encodée comme:
+0 (MSB) +1 (LSB)
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
0: | OPTION-CODE |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
2: | OPTION-LENGTH |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
4: | |
/ OPTION-DATA /
/ /
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
OPTION-CODE : Attribué par le processus d'examen par des experts tel que défini par le groupe de travail DNSEXT et l'IESG.
OPTION-LENGTH : Taille (en octets) de OPTION-DATA.
OPTION-DATA : Varie par OPTION-CODE. DOIT être traité comme un champ de bits.
L'ordre d'apparition des tuples d'option n'est pas défini. Si une option modifie le comportement d'une autre ou si plusieurs options sont liées entre elles d'une manière ou d'une autre, elles ont le même effet quel que soit l'ordre dans l'encodage fil RDATA.
Toutes les valeurs OPTION-CODE non comprises par un répondeur ou un demandeur DOIVENT être ignorées. Les spécifications de telles options pourraient souhaiter inclure une sorte de reconnaissance signalée. Par exemple, une spécification d'option pourrait dire que si un répondeur voit et supporte l'option XYZ, il DOIT inclure l'option XYZ dans sa réponse.