# 1 - Le protocole IP

Patrice Laurençot

> Le rôle d'une couche Réseau est d'acheminer un bloc d'octets de couche MAC en couche MAC depuis le système dans lequel un utilisateur expéditeur a fait la demande de transmission jusqu'au système dans lequel se trouve l'utilisateur destinataire, selon une route pré-calculée (X25) ou calculée au fur et à mesure de l'acheminement (IP).

> Dans la terminologie IP, une couche MAC est appelée sous-réseau.

## 1.1 - La désignation des entités-IP : adresses-IP

### Adresses-IP spéciales

adresse | commentaire
tous les bits à 0 (`0.0.0.0`) | Cette adresse est utilisée par une machine qui ne connait pas son adresse, lorsqu'elle interroge un serveur d'adresses pour la connaître.
les bits hôte de l’adresse à 1 | Adresse de broadcast pour le réseau considéré
tous les bits à 1 (`255.255.255.255`) | Bien que désignant toutes les entités de tous les réseaux d'un internet, une PDU-IP contenant cette adresse destination ne sortira pas du sous-réseau dans lequel elle est émise. Ainsi, elle désigne les mêmes entités-IP que ci-dessus.
Ensemble de bit à 0 ou à 1 (adresse interface) | Ces adresses désignent l'entité-IP elle-même. C’est l’adresse IP de l’interface réseau de la machine
adresses de classe D `1110xx..xx` | Ces adresses sont des identificateurs de groupe. Elle désigne un groupe d'entités-IP qui se sont "inscrites" au groupe. liste des identificateurs de groupe

## 1.2 - Les PDU-IP

> ### Format

> `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

> > ou sous une autre forme :

> >     IP  Src=193.54.51.67  Dst=193.54.51.1  v=4  hl=5  qos=0  lg=40  id=18198  off=16384  ttl=128  ck=CB08  p=6 (TCP)

> Exercice 1.2-1 : décodage

> Dans la feuille extrait, décoder au moins une PDU-IP dont le numéro sera donné par l'enseignant

> Exercice 1.2-2 : ttl - durée de vie de la PDU

> Dans la feuille complet, quelles sont les valeurs utilisées pour ttl ?

> Dans quels cas ?

Revenir au menu