Le protocole internet : IP
IP (Internet Protocol) est le protocole utilisé sur le réseau mondial Internet et sur le réseau Packet-radio, après AX25. Il définit les méthodes de communication des ordinateurs reliés à ces réseaux.
Les classes publiques et privées
Il existe cinq classes d’adresses IP (voir document SM2-01: Internet), seules les trois premières sont utilisées pour adresser des machines.
Classe A : de 0.0.0.0 à 127.255.255.255. 126 plages sont disponibles dans cette classe. La plage 10.0.0.0 est réservée pour les réseaux privés et la classe 127.0.0.0 est réservée pour les tests locaux à chaque machine (localhost). Le service radioamateur dispose d’un réseau dans cette classe : c’est le 44.x.x.x. Le deuxième octet définit le pays. C’est 151 qui a été attribué à la la France, qui a réservé le troisième octet au département et le quatrième à la station.
Classe B : de 128.0.0.0 à 191.255.255.255. 16 368 plages sont disponibles dans cette classe. Les plages 172.16.0.0 à 172.31.255.255 sont réservées pour les réseaux privés.
Classe C : de 192.0.0.0 à 223.255.255.255. 2 097 251 plages sont disponibles dans cette classe. La plage 192.168.0.0 est réservée pour les réseaux privés.
Les paquets des réseaux privés ne sont pas routés en dehors du réseau privé.
Pour chaque plage de chaque classe, la première adresse est l’adresse du réseau et la dernière est réservée à la diffusion de requêtes et d’informations à destination de toutes les machines du réseau. Pour gagner de la place, les plages peuvent être divisées en sous-réseaux.
Le masque de sous-réseau
Le masque de sous-réseau permet de définir des sous-réseaux à l’intérieur d’une classe.
Il est plus facile de s’y retrouver en le décomposant en binaire : sans découpage, chaque bit du masque de sous-réseau correspondant à celui de l’adresse réseau est à 1 et chaque bit correspondant à celui de l’adresse machine est à 0. Un masque de sous-réseau est donc composé d’une suite de 1 successifs puis de 0 successifs.
Si l’on prend pour exemple une plage dans chacune des classes :
Classe A : 44.151.54.7 Le premier octet donne l’adresse du réseau : 44, les autres sont propres à chaque machine. Le masque de sous-réseau non découpé est 255.0.0.0.
Classe B : 152.81.208.101 Les deux premiers octets donnent l’adresse du réseau : 152.81, les autres sont propres à chaque machine. Le masque de sous-réseau non découpé est 255.255.0.0.
Classe C : 192.151.54.7 Les trois premiers octets donnent l’adresse du réseau : 192.151.54, le dernier est propre à chaque machine. Le masque de sous-réseau non découpé est 255.255.255.0.
Supposons maintenant que l’on veuille découper une classe en sous-réseaux. Notre classe 44 s’y prête très bien. Dans 44.151.54.7, le 2e octet est attribué au pays et le 3e au département. Le masque correspondant au découpage par pays serait 255.255.0.0, celui au découpage par départements 255.255.255.0.
Dans chaque sous-réseau, l’adresse la plus basse est réservée au réseau et l’adresse la plus haute à la diffusion générale (broadcast).
Le masque de sous-réseau sert également au système à calculer l’adresse de broadcast du sous-réseau : le système effectue un ou exclusif sur la partie correspondant à l’adresse machine du masque avec des 1 et l’ajoute à l’adresse réseau.
Exemples : Soient les adresses 44.151.54.7 - 255.240.0.0 et 192.151.54.7 - 255.255.255.240.
11111111.11110000.00000000.00000000 11111111.11111111.11111111.11110000
xor 11111111.11111111.11111111 xor 11111111
00101100.00001111.11111111.11111111 11000000.10010111.00110110.00001111
44 . 15 . 255 . 255 192 . 151 . 54 . 15
Leurs adresses de diffusion sont donc 44.15.255.255 et 192.151.54.15.
Voici pour chaque classe les découpages possibles en sous-réseaux, avec le masque de sous-réseau en binaire, le nombre de sous-réseaux, le nombre d’adresses disponibles dans le sous-réseau et le masque de sous-réseau exprimé en décimal.
Classe A :
Masque binaire réseaux adresses masque
11111111.00000000.00000000.00000000 1 16 777 214 255.0.0.0
11111111.10000000.00000000.00000000 2 8 388 606 255.128.0.0
11111111.11000000.00000000.00000000 4 4 194 302 255.192.0.0
11111111.11100000.00000000.00000000 8 2 097 150 255.224.0.0
11111111.11110000.00000000.00000000 16 1 048 574 255.240.0.0
11111111.11111000.00000000.00000000 32 524 286 255.248.0.0
11111111.11111100.00000000.00000000 64 262 142 255.252.0.0
11111111.11111110.00000000.00000000 128 131 070 255.254.0.0
11111111.11111111.00000000.00000000 256 65 534 255.255.0.0
11111111.11111111.10000000.00000000 512 32 766 255.255.128.0
11111111.11111111.11000000.00000000 1 024 16 382 255.255.192.0
11111111.11111111.11100000.00000000 2 048 8 190 255.255.224.0
11111111.11111111.11110000.00000000 4 096 4 094 255.255.240.0
11111111.11111111.11111000.00000000 8 192 2 046 255.255.248.0
11111111.11111111.11111100.00000000 16 384 1 022 255.255.252.0
11111111.11111111.11111110.00000000 32 768 510 255.255.254.0
11111111.11111111.11111111.00000000 65 536 254 255.255.255.0
11111111.11111111.11111111.10000000 131 072 126 255.255.255.128
11111111.11111111.11111111.11000000 262 144 62 255.255.255.192
11111111.11111111.11111111.11100000 524 288 30 255.255.255.224
11111111.11111111.11111111.11110000 1 048 576 14 255.255.255.240
11111111.11111111.11111111.11111000 2 097 152 6 255.255.255.248
11111111.11111111.11111111.11111100 4 194 304 2 255.255.255.252
Classe B :
Masque binaire réseaux adresses masque
11111111.11111111.00000000.00000000 1 65 534 255.255.0.0
11111111.11111111.10000000.00000000 2 32 766 255.255.128.0
11111111.11111111.11000000.00000000 4 16 382 255.255.192.0
11111111.11111111.11100000.00000000 8 8 190 255.255.224.0
11111111.11111111.11110000.00000000 16 4 094 255.255.240.0
11111111.11111111.11111000.00000000 32 2 046 255.255.248.0
11111111.11111111.11111100.00000000 64 1 022 255.255.252.0
11111111.11111111.11111110.00000000 128 510 255.255.254.0
11111111.11111111.11111111.00000000 256 254 255.255.255.0
11111111.11111111.11111111.10000000 512 126 255.255.255.128
11111111.11111111.11111111.11000000 1 024 62 255.255.255.192
11111111.11111111.11111111.11100000 2 048 30 255.255.255.224
11111111.11111111.11111111.11110000 4 096 14 255.255.255.240
11111111.11111111.11111111.11111000 8 192 6 255.255.255.248
11111111.11111111.11111111.11111100 16 384 2 255.255.255.252
Classe C :
Masque binaire réseaux adresses masque
11111111.11111111.11111111.00000000 1 254 255.255.255.0
11111111.11111111.11111111.10000000 2 126 255.255.255.128
11111111.11111111.11111111.11000000 4 62 255.255.255.192
11111111.11111111.11111111.11100000 8 30 255.255.255.224
11111111.11111111.11111111.11110000 16 14 255.255.255.240
11111111.11111111.11111111.11111000 32 6 255.255.255.248
11111111.11111111.11111111.11111100 64 2 255.255.255.252
La passerelle
Avec l’adresse de réseau et le masque de sous-réseau, une machine peut déterminer à quelles machines elle peut envoyer ses datagrammes. Ainsi, la machine d’adresse IP 44.151.54.7 avec le masque de sous-réseau 255.255.255.240 fait partie du réseau 44.151.54.0 contenant les machines d’adresses 44.151.54.1 à 44.151.54.14 ; l’adresse de diffusion pour ce sous-réseau est 44.0.0.15. Cette machine peut donc s’adresser directement à chacune des machines de ce sous-réseau. Si par contre elle a besoin de connecter la machine 44.151.54.54, celle-ci ne faisant pas partie de son réseau, elle doit passer par l’intermédiaire d’une machine appelée passerelle qui est chargée d’envoyer la requête à la machine désirée. Il y a au moins une passrerelle dans un réseau interconnecté.
Le DNS
Il est plus facile pour l’être humain de retenir des noms (f6ddw.ampr.org) plutôt que des adresses IP (44.151.54.7). Un nom unique est donc affecté à chaque machine d’un réseau. Le DNS (Domain Name System) est un programme qui tourne en permanence sur un ou plusieurs serveurs du réseau et qui fait la correspondance entre le nom des machines et leur adresse IP, qui sont les seules comprises par le réseau.
Paramétrage système
Les paramètres TCP/IP à fournir à un système d’exploitation réseau sont donc l’adresse IP de la machine, son masque de sous-réseau, la ou les adresses DNS et l’adresse de la passerelle par défaut. Lorsque la machine se connecte à un réseau via une ligne téléphonique, c’est généralement le serveur de communications qui attribue l’adresse IP, le masque de sous-réseau, l’adresse des DNS et de la passerelle pat défaut. Le protocole utilisé s’appelle DHCP (Dynamic Host Control Protocol).
Encapsulation
L’ensemble des informations de l’entête et les données contenues dans un paquet IP s’appellent un datagramme. Sa longueur maximum est de 65536 octets. Le datagramme est encapsulé dans une trame physique, Ethernet ou AX25 par exemple.
Fragmentation
Comme les trames voyagent de machine en machine, elles peuvent subir des découpages dûs au fait que certains routeurs sont limités en nombre d’octets contenus dans une trame. Par exemple la limite de transfert d’Ethernet est de 1 500 octets par trame, mais elle peut descendre à moins de 128 octets. Cette limite s’appelle MTU (Maximum Tranfer Unit). Un datagramme peut donc être découpé en datagrammes plus petits selon le MTU du routeur. Une fois découpé, les fragments d’un datagramme sont transmis tels quels jusqu’à leur destination finale. La machine destinatrice des datagrammes se charge de les réassembler pour restituer le datagramme original.
Le datagramme IP
Le datagramme IP comprend trois parties : l’entête, les données et les contrôles. Il y a deux champs contrôle, un portant sur l’entête, l’autre sur les données, permettant ainsi aux routeurs de traiter plus rapidement les datagrammes selon les données de l’entête et permettant aux applications générant les données d’avoir leur propre méthode pour générer et vérifier les contrôles pour les données.
L’entête est composée de mots de 32 bits :
Vers : Version du protocole. Actuellement, c’est la version 4. Le logiciel de traitement vérifie ce champ d’abord et ne traite pas les datagrammes d’une version inconnue afin de prévenir les erreurs d’interprétation.
HLen : Longueur de l’entête en mots de 32 bits, généralement 5.
Service Type : Type de service. Ce champ se décompose comme suit :
Precedence : Importance du datagramme, de 0 (normal) à 7 (contrôle réseau).
D, T, R : Type de transport désiré.
D (delay) : Délai faible.
T (throughput) : Traversée rapide.
R (reliability) : Haute fiabilité.
Total length : Longueur totale en octets du datagramme IP, y compris l’entête. Comme ce champ est codé sur 16 bits, le maximum possible est 216, soit 65 536 octets.
Identification : Numéro unique qui identifie le datagramme. Si un routeur doit couper le datagramme en plusieurs fragments pour pouvoir le router, chaque fragment contiendra cet identificateur.
Flags : Bits de contrôle.
Do not fragment : Si ce bit est positionné, la fragmentation est interdite. Si le routeur doit fragmenter, il renvoie un message d’erreur.
More fragments : Si ce bit est positionné, il indique qu’il y a encore d’autres fragments du datagramme original qui suivent.
Fragment offset : Décalage dans le datagramme original des données transportées dans le fragment, en blocs de 8 octets.
Time to live (TTL) : Durée en secondes pendant laquelle le datagramme peut transiter sur le réseau. Au bout de ce délai, le routeur détruit le datagramme et envoie un message d’erreur à l’expéditeur. Chaque routeur traversé doit décrémenter le TTL de un ou de la durée en secondes du transfert. Ceci évite les bouclages dûs à des tables de routage corrompues et les longs délais dûs à des routeurs surchargés.
Protocol : Identification du protocole ayant généré les données contenues dans le champ data.
Header checksum : Assure de l’intégrité des valeurs de l’entête. Il est formé en considérant l’entête comme une séquence d’entiers sur 16 bits, additionnés en complément arithmétique à 1 et en prenant le complément à 1 du résultat. Pour les besoins du calcul, le champ Header checksum est supposé contenir des zéros.
Source IP address : Adresse IP de l’émetteur sur 32 bits.
Destination IP address : Adresse IP du destinataire sur 32 bits.
IP options : Champ optionnel de longueur variable.
Padding : Champ dépendant des options sélectionnées.
Christian Martin, F6DDW
|