Index Page précédente Page suivante

II. UN BRIN DE THEORIE

Avant d'entrer dans le vif du sujet, il nous faut un minimum de connaissances théoriques. Et il faudra tout lire, c'est pour votre bien (si, si, je vous assure).

A. Le protocole TCP/IP

TCP/IP est en fait un protocole double. IP (Internet Protocol) est le protocole de plus bas niveau. Il sait comment recevoir des paquets individuels d'une adresse source vers une adresse destination. Dans le jargon réseau, IP est un protocole sans connexion (ou mode non connecté); l'expéditeur envoie juste un paquet au destinataire et n'attend jamais un accusé de réception. De ce fait, IP est rapide, peu coûteux en ressource machine et ne surcharge pas le réseau.

Mais que se passe-t-il lorsqu'un paquet se perd et n'arrive jamais à destination ? C'est TCP (Transfert Control Protocol) qui prend en charge ce cas de figure. TCP est le protocole de niveau supérieur. Quand deux machines négocient une connexion TCP (ce qu'elles font en utilisant IP), le destinataire doit envoyer des accusés de réception des paquets qu'il reçoit à l'expéditeur. Si l'expéditeur ne reçoit pas un accusé de réception pour un paquet après un certain temps, il renvoie ce paquet. Ces accusés de réception (ACK) génèrent un supplément de trafic sur le réseau, ralentissant le débit de transmission des données en faveur d'une plus grande fiabilité.

TCP prend aussi en charge le contrôle de la validité des paquets reçus. En effet, les paquets contiennent une somme de contrôle (un checksum) pour garantir la fiabilité d'en-tête ainsi que la détection de données altérées.
 

B. Le protocole ARP

Bien qu'il ne soit pas directement concerné par le transport de données, le protocole ARP (Adress Resolution Protocol) est important. Pour que deux systèmes puissent communiquer sur un réseau TCP/IP, celui qui envoie les paquets doit connaître l'adresse physique de destination. IP acquiert cette adresse physique en diffusant un paquet de demande spécial (paquet requête ARP) qui contient l'adresse IP du système de destination. Tous les systèmes disposant du protocole ARP sur le réseau détectent ce message à diffusion générale, et le système concerné répond en envoyant son adresse physique au demandeur (dans un paquet réponse ARP) qui la stocke dans son cache ARP en vue d'une utilisation ultérieure.

Remarque : dans la mesure où la réponse ARP est diffusée sur tout le réseau, les autres systèmes en profitent pour mettre à jour leurs caches ARP.
 

C. Les adresses IP

De la même façon que vous possédez une adresse postale vous permettant de recevoir votre courrier, chaque machine doit posséder une adresse unique. Cette adresse est un nombre codé sur 32 bits (4 octets, soit plus de 4 milliards de possibilités). On a coutume de l'écrire en utilisant 4 nombres décimaux, chaque nombre ayant la valeur d'un des 4 octets. Chaque nombre peut donc prendre une valeur qui varie entre 0 et 255 (inclus).

Exemple : 192.168.0.14 est une adresse IP valide.

Remarque : il est incorrect de dire qu'une adresse IP est " assignée à une machine ". En fait, cette adresse est assignée au périphérique qui permet les échanges de données avec le réseau (modem, carte Ethernet, etc). En effet, nous verrons qu'il peut y avoir, par exemple, plusieurs cartes Ethernet sur un même ordinateur. Dans ce cas, chaque carte doit impérativement posséder une adresse IP qui lui est propre.
 

D. Le masque réseau

Comme pour l'adresse IP, le masque réseau est un nombre codé sur 32 bits, représenté par 4 chiffres décimaux. En revanche, comme nous allons le voir, ces 4 nombres ne peuvent pas prendre n'importe quelles valeurs entre 0 et 255.

Tout d'abord, à quoi sert le masque réseau ? Il définit le droit pour un ordinateur (ou plutôt pour un périphérique) de communiquer ou non avec d'autres machines. De ce fait, il est possible de constituer des groupes d'ordinateurs (des sous-réseaux) qui ne peuvent pas communiquer avec d'autres groupes, même s'ils sont physiquement reliés entre eux.

Intérêts :

Prenons un exemple concret : soit une machine cirl1 possédant une carte Ethernet d'adresse IP 192.168.0.1 et un masque réseau ayant la valeur 255.255.255.192. En binaire, 255 s'écrit : 11111111. De même, 192 s'écrit : 11000000. La valeur 255.255.255.192 s'écrit donc : 11111111.11111111.11111111.11000000. Remarquez que ce nombre commence par une série de 1, directement suivie d'une série de 0 jusqu'à la fin. Cette règle est valable pour tous les masques réseaux. Un masque réseau ne peut donc pas prendre n'importe quelles valeurs.

Les valeurs possibles pour chaque octet (chacun des 4 nombres décimaux) sont :

Exemples : L'ensemble des bits qui ont la valeur 1 du masque réseau définissent le sous-réseau auquel appartient la machine. Le reste (les bits de valeur 0) sert à repérer la machine elle-même. Reprenons notre exemple : supposons que cirl1 veuille envoyer des données à cirl2 d'adresse IP 192.168.0.2 et de masque réseau 255.255.255.192. Comment cirl1 peut-il savoir que cirl2 est dans le même sous-réseau ? Le principe est assez simple : cirl1 compte le nombre de bits qui ont la valeur 1 dans son masque réseau. Dans notre exemple, il y en a 26. Si les 26 premiers bits de l'adresse IP de cirl2 sont identiques aux 26 premiers bits de l'adresse IP de cirl1, alors cirl2 est dans le même sous-réseau que cirl1. C'est le cas ici.

Supposons maintenant que cirl1 veuille envoyer des données à une machine chef_cirl, d'adresse IP 192.168.0.9, de masque réseau 255.255.255.248.

Les 26 premiers bits de l'IP de cirl1 sont :           11000000.10101000.00000000.00
Les 26 premiers bits de l'IP de chef_cirl sont :    11000000.10101000.00000000.00

Pour cirl1, la machine chef_cirl est donc dans le même sous réseau que lui. Pourtant, en pratique, cela ne fonctionnera pas. En effet, pour chef_cirl, le masque réseau est différent de celui de cirl1. Il vaut 255.255.255.248. chef_dsi doit donc comparer les 29 (et non pas 26) premiers bits des adresses IP.

Les 29 premiers bits de l'IP de cirl1 sont :           11000000.10101000.00000000.00000
Les 29 premiers bits de l'IP de chef_cirl sont :   11000000.10101000.00000000.00001

Pour chef_cirl, cirl1 n'est pas dans le même sous réseau que lui. En résumé, cirl1 peut en théorie envoyer des paquets à chef_cirl, mais comme chef_cirl ne peut répondre au paquet requête ARP diffusé par cirl1, cirl1 ne connaît pas l'adresse physique de chef_cirl et la transmission de données échoue.

Combien cirl1 peut-il contacter de machines ? Son masque réseau valant 255.255.255.192, les 26 premiers bits de chaque adresse IP sont donc utilisés pour définir le sous-réseau de cirl1. Il en reste donc 6 pour définir chaque ordinateur, soit 26 = 64 machines. En théorie, les machines du sous-réseau ont donc les adresses suivantes :

En toute rigueur, sur ces 64 adresses, il faut en réserver 2 : l'adresse 192.168.0.0 qui est l'adresse réseau et l'adresse 192.168.0.63 qui est l'adresse de diffusion. L'adresse de réseau (network address) est utilisée par les routeurs pour faire communiquer des sous-réseaux entre eux (voir chapitre consacré au routage). Quand à l'adresse de diffusion (broadcast address), c'est une adresse spéciale que chaque hôte du réseau écoute en même temps que son adresse personnelle. Cette adresse est celle à laquelle les datagrammes sont envoyés si tous les hôtes du réseau sont en mesure de les recevoir. Certains types de données tels que les informations de routage et les messages d'alerte sont transmis vers l'adresse de diffusion de telle sorte que tous les hôtes du réseau peuvent les recevoir en même temps.
En résumé, sur les 64 adresses du sous-réseau auquel appartient cirl1, on ne peut utiliser qu'un maximum de 62 adresses IP pour les ordinateurs.

Remarques :

Encore plus fort : voyons maintenant un dernier cas de figure avec 3 sous-réseaux :
 
Nom du réseau Adresse réseau Masque réseau Broadcast Nombre de machines
a 192.168.0.0 255.255.255.192 192.168.0.63 62
b 192.168.0.64 255.255.255.192 192.168.0.127 62
g 192.168.0.128 255.255.255.128 192.168.0.255 124 et non pas 126

On remarque que le sous-réseau g ne peut contenir que 124 machines et non pas 126 comme on pourrait s'y attendre. En effet, l'adresse 192.168.0.191 est considérée par les sous-réseaux a et b comme une network address (du type de celles qui sont utilisées par les routeurs), et l'adresse 192.168.0.192 est considérée par a et b comme une adresse de Broadcast. Il ne faut donc pas les utiliser comme adresses machine. Ceci illustre une règle générale : le nombre d'adresses d'un sous-réseau d'un réseau global est définit par le sous-réseau le plus petit du réseau global.
 

E. Les types de réseaux

Pour des raisons d'administration, il y a quelque temps, lors du développement du protocole IP, des ensembles d'adresses ont été organisés en réseaux et ces réseaux ont été regroupés en ce que l'on a appelé classes. Ces classes donnent un certain nombre de réseaux de tailles standards auxquels on peut assigner des adresses. Ces classes sont :
 
Classe Masque Adresses correspondantes
A 255.0.0.0 De 0.0.0.0 à 127.255.255.255
B 255.255.0.0 De 128.0.0.0 à 191.255.255.255
C 255.255.255.0 De 192.0.0.0 à 223.255.255.255
Multicast 240.0.0.0 De 224.0.0.0 à 239.255.255.255

Si vous avez un réseau pour lequel vous n'avez pas alloué d'adresse IP auprès de l'autorité responsable de votre pays, vous devez utiliser les adresses suivantes :

De 10.0.0.0 à 10.255.255.255 (classe A)

De 172.16.0.0 à 172.31.255.255 (classe B)

De 192.168.0.0 à 192.168.255.255 (classe C)

Attention : ces adresses sont réservées aux réseaux locaux et ne doivent jamais sortir sur Internet.
 

F. Le loopback

Tout ordinateur configuré pour supporter le protocole TCP/IP possède, indépendamment du système d'exploitation en vigueur, un loopback. C'est un type spécial d'interface qui permet de vous connecter à vous-même. Vous pouvez vous en servir, par exemple, pour faire des essais de logiciel sans interférer avec quelqu'un d'autre sur votre réseau. Par convention, le loopback est un réseau de classe A (i.e. : de masque 255.0.0.0) commençant à l'adresse 127.0.0.0. Vous obtiendrez une réponse de votre propre machine quelque soit l'IP que vous contacterez à l'intérieur de ce réseau.


Index Page précédente Page suivante