# Format des PDU-IP

`0` | `31`
version `[v]` | lg.entête `[hl]` | service `[qos]` | longueur totale `[lg]`
identificateur de la PDU-IP `[id]` | flags `[off]` | position du fragment `[off]`
durée de vie `[ttl]` | protocole encapsulé `[p]` | somme de contrôle `[ck]`
adresse source `[Src]`
adresse destination`[Dst]`
données (PDU de couche supérieure)

Chaque ligne représente 4 octets; par exemple `version` est sur 4 bits, et `durée de vie` sur 1 octet.

Les valeurs du champ `service` sont une combinaison des paramètres de qualité :

> bits | signification | valeurs
> --- | --- | ---
> `xxx.....` | niveau de priorité (precedance) | 000=normale à 111=maximale
> `...x....` | délai d'acheminement (delay) | 0=normal 1=court
> `....x...` | débit de transmission (throughput) | 0=normal 1=élevé
> `.....x..` | confidentialité (reliability) | 0=normale 1=élevée

Les valeurs du champ `flags` sont :

> bits | signification | valeurs
> --- | --- | ---
> `.x......` | autorisation de fragmentation | 1 = la PDU peut être fragmentée
> `..x.....` | dernier fragment ? | 1 = ce n'est pas le fragment
> `...xxxxx` | position du fragment dans la PDU originelle |

La valeur du champ `p` (protocole encapsulé) indique à quel protocole appartient la PDU transportée dans le champ `donnée` (liste des codes protocole).

# Exemple d'interprétation de PDU-IP

Soit la PDU-IP :

`4500 0028 5b24 0000 3b06 e231 c136 3301 c036 8e0c 03ff 0201 4d20 2492 8e88 05a1 5010 81d0 dfad 0000 0000 0000 0000`

> champ | valeur |
> version | `4` |
> lg.entête | `5` | 4*5 = 20 octets
> service | `00` | service normal
> longueur totale | `0028` | 40 octets
> identificateur de la PDU | `5b24` |
> flags et position du fragment | `0000` | premier et dernier fragment
> durée de vie | `3b` | 59 secondes
> protocole encapsulé | `06` | TCP
> somme de contrôle | `e231` |
> adresse source | `c1363301` | `193.54.51.1`
> adresse destination | `c0368e0c` | `192.54.142.12`
> données | `03ff ...` | une PDU TCP