# Format des PDU-DNS

### Format général

> entête | 12 octets
> 0 ou 1 question (Q) | lg variable
> 0 ou 1 RR réponses (R) | lg variable
> 0 ou 1 RR références autorisées (A) | lg variable
> 0 ou 1 RR informations additionnelles (I) | lg variable

### Format de l'entête

> | bits | champ | valeurs
> --- | --- | --- | ---
> octets 0-1 |  | identifier |
> octet 2 | 0 | type-PDU | 0=QUERY 1=ANSWER
> 2..4 | opcode | 0=normal 1=inverse 2=état du serveur
> 5 | AA | 1=réponse autorisée
> 6 | TC | 1=réponse tronquée
> 7 | RD | 1=récursion demandée
> octet 3 | 0 | RA | 1=récursion disponible
> 1..3 | Z | 0
> 5..7 | rcode | 0=pas d'erreur 1=erreur dans question 2=erreur du serveur 3=nom inexistant 4=réponse impossible 5=refus de réponse
> octets 4-5 |  | nombre de questions |
> octets 6-7 |  | nombre de réponses |
> octets 8-9 |  | nombre de références autorisées |
> octets 10-11 |  | nombre d'informations additionnelles |

### Format d'une question

> NAME | nom cherché | lg variable
> TYPE | `1=A 2=NS 5=CNAME 6=SOA 12=PTR 13=HINFO 15=MX 28=AAAA 255=*` | 2 octets
> CLASS | 1=Internet | 2 octets

### Format d'un RR

> NAME | nom de la ressource | lg variable
> TYPE | type de RR | 2 octets
> CLASS | 0=Internet 1=Chaos | 2 octets
> TTL | durée de validité | 2 octets
> RDLENGTH | lg du RDATA | 2 octets
> RDATA | données du RR | lg variable