Protocole Internet (IP)
Le protocole Internet (IP) fournit un système d'adressage hiérarchique et indépendant du matériel et offre les services nécessaires à la livraison de données sur un réseau routé complexe. Chaque carte réseau sur un réseau TCP/IP possède une adresse IP unique.
Les adresses IP sur le réseau sont organisées de manière à ce que vous puissiez connaître l'emplacement de l'hôte (le réseau ou le sous-réseau où réside l'hôte) en examinant l'adresse. En d'autres termes, une partie de l'adresse est un peu comme un code postal (décrivant un emplacement général), et une partie de l'adresse est un peu comme l'adresse de la rue (décrivant un emplacement exact dans cette zone générale).
L'adresse IP est divisée en deux parties :
- L'identifiant du réseau
- L'identifiant de l'hôte
Le réseau doit fournir un moyen de déterminer quelle partie de l'adresse IP est l'ID de réseau et quelle partie est l'ID d'hôte. Malheureusement, la variété et la complexité des réseaux dans le monde réel empêchent une solution simple et universelle à ce problème. Les grands réseaux doivent réserver un grand nombre de bits d'hôte pour leur grand nombre d'hôtes. Les petits réseaux n'ont pas besoin de beaucoup de bits pour donner à chaque hôte un identifiant unique ; cependant, le grand nombre de petits réseaux signifie que plus de bits de l'adresse IP sont nécessaires pour l'ID de réseau.
La solution originale à ce problème consistait à diviser l'espace d'adressage IP en une série de classes d'adresses. Les réseaux de classe A utilisaient les 8 premiers bits de l'adresse pour l'ID de réseau ; La classe B utilisait les 16 premiers bits ; Les réseaux de classe C utilisaient les 24 premiers bits. Ce système a été étendu grâce à une fonctionnalité appelée sous-réseau pour fournir un meilleur contrôle au niveau local pour la structuration du réseau.
Une technique plus récente connue sous le nom de Classless Inter-Domain Routing (CIDR) rend essentiellement le système de classe d'adresse inutile. CIDR, qui est maintenant assez courant sur Internet, offre une notation simple, flexible et sans ambiguïté pour spécifier combien de bits appartiennent à l'ID de réseau.
En-tête IP
Chaque datagramme IP commence par un en-tête IP. L'ordinateur source construit l’en-tête IP. La destination utilise les informations contenues dans l’en-tête IP pour traiter le datagramme. L’en-tête IP contient de nombreuses informations, notamment les adresses IP des ordinateurs source et de destination, la longueur du datagramme, le numéro de version IP et des instructions spéciales aux routeurs.
La taille minimale d'un en-tête IP est de 20 octets. La figure ci-dessous montre le contenu de l'en-tête IP.
Les champs d'en-tête sont les suivants :
- Version : ce champ de 4 bits indique quelle version d'IP est utilisée. La version actuelle d'IP est 4. La valeur binaire pour 4 est 0100.
- IHL (Internet Header Length) ou HLEN : Ce champ de 4 bits donne la longueur de l'en-tête IP en mots de 32 bits. La longueur minimale de l'en-tête est de cinq mots de 32 bits. La valeur binaire pour 5 est 0101.
- Type de service : L'IP source peut désigner des informations de routage spéciales. Certains routeurs ignorent le champ Type de service, bien que ce champ ait récemment reçu plus d'attention avec l'émergence des technologies de qualité de service (QoS). L'objectif principal de ce champ de 8 bits est de fournir un moyen de hiérarchiser les datagrammes qui attendent de passer par un routeur. La plupart des implémentations d'IP aujourd'hui mettent simplement des 0 dans ce champ.
- Longueur totale : ce champ de 16 bits identifie la longueur, en octets, du datagramme IP. Cette longueur inclut l'en-tête IP et la charge utile des données.
- Identification : Ce champ de 16 bits est un numéro de séquence incrémentiel attribué aux messages envoyés par l'IP source. Lorsqu'un message est envoyé à la couche réseau et qu'il est trop volumineux pour tenir dans un datagramme, IP fragmente le message en plusieurs datagrammes, donnant à tous les datagrammes le même numéro d'identification. Ce numéro est utilisé à la réception pour réassembler le message d'origine.
- Drapeaux : Le champ drapeaux indique les possibilités de fragmentation. Le premier bit est inutilisé et doit toujours avoir la valeur 0. Le bit suivant est appelé drapeau DF (Don't Fragment). Le drapeau DF indique si la fragmentation est autorisée (valeur = 0) ou non (valeur = 1). Le bit suivant est l'indicateur MF (More Fragments), qui indique au récepteur que d'autres fragments sont en route. Lorsque MF vaut 0, il n'y a plus de fragments à envoyer ou le datagramme n'a jamais été fragmenté.
- Décalage de fragment : Ce champ de 13 bits est une valeur numérique attribuée à chaque fragment successif. L'IP de destination utilise le décalage de fragment pour réassembler les fragments dans le bon ordre. La valeur de décalage trouvée ici exprime le décalage comme un nombre d'unités de 8 octets.
- Time To Live (TTL) : Ce champ de bits indique la durée, en secondes ou en sauts de routeur, pendant laquelle le datagramme peut survivre avant d'être rejeté. Chaque routeur examine et décrémente ce champ d'au moins 1, ou du nombre de secondes de retard du datagramme à l'intérieur du routeur. Le datagramme est rejeté lorsque ce champ atteint 0.
Un saut représente le nombre de routeurs qu'un datagramme doit traverser sur le chemin de sa destination. Si un datagramme passe par cinq routeurs avant d'arriver à sa destination, la destination est dite à cinq sauts, ou cinq sauts de routeur, loin. - Protocole : le champ Protocole à 8 bits indique le protocole qui recevra la charge utile de données. Un datagramme avec l'identifiant de protocole 6 (binaire 00000110) est transmis dans la pile au TCP, par exemple. Voici quelques valeurs de protocole courantes :
Nom du protocole | Identificateur de protocole |
---|---|
ICMP | 1 |
TCP | 6 |
UDP | 17 |
- Somme de contrôle : ce champ contient une valeur calculée sur 16 bits pour vérifier la validité de l'en-tête uniquement. Ce champ est recalculé dans chaque routeur au fur et à mesure que le champ TTL décrémente.
- Adresse IP source : ce champ de 32 bits contient l'adresse de la source du datagramme.
- Adresse IP de destination : ce champ de 32 bits contient l'adresse de destination du datagramme.
- Options IP : ce champ prend en charge un certain nombre de paramètres d'en-tête facultatifs principalement utilisés pour les tests, le débogage et la sécurité. Les options incluent la route source stricte (un chemin de routeur spécifique que le datagramme doit suivre), l'horodatage Internet (un enregistrement des horodatages sur chaque routeur) et les restrictions de sécurité.
- Remplissage : la longueur du champ Options IP peut varier. Le champ remplissage fournit 0 bits supplémentaires afin que la longueur totale de l'en-tête soit un multiple exact de 32 bits. (L'en-tête doit se terminer après un mot de 32 bits car le champ IHL mesure la longueur de l'en-tête en mots de 32 bits.)
- Charge utile des données IP : ce champ contient généralement des données destinées à être transmises à TCP ou UDP (dans la couche de transport), ICMP ou IGMP. La quantité de données est variable mais peut inclure des milliers d'octets.