-
Introduction
-
Le protocole IP
-
L'adresse IP
-
Les différents types de réseaux
-
La subdivision en sous-réseaux
-
Le routage des paquets IP et le protocole TCP
-
Le système de désignation de noms (DNS)
-
Résumé et exemples
1. Introduction
Quelques mots d'abord sur le protocole TCP-IP.
TCP-IP est un ensemble de logiciels développés au fil
des années (à partir des années 70 déjà)
qui constituent un "langage universel" de communication informatique à
travers le monde. Le protocole devait posséder les qualités
suivantes :
-
une bonne reprise après panne
-
la capacité à gérer un taux élevé d'erreurs
-
une faible surcharge des données
-
la capacité de se prolonger sans difficultés dans des sous-réseaux
-
l'indépendance par rapport à un fournisseur particulier ou
un type de réseau
A partir du 1er janvier 1983, seuls les paquets TCP-IP ont été
transmis sur le réseau Arpanet (précurseur d'Internet). 1983
est donc en quelque sorte l'année de naissance d'Internet.
Il faut encore rajouter que TCP-IP se compose de deux protocoles distincts,
IP et TCP, dont j'explique plus loin les rôles respectifs.
2. Le protocole IP
Le Protocole Internet ou IP (Internet Protocol) est la partie la
plus fondamentale d'Internet. Si vous voulez envoyer des données
sur internet, vous devez les "emballer" dans un paquet IP. Je parerlai
plus loin (voir la partie accélération
de votre connexion à Internet) de ces paquets IP. Il faut savoir
pour l'instant que ces derniers ne doivent pas être trop gros; la
plupart du temps, ils ne peuvent pas contenir toute l'information qu'on
voudrait envoyer sur Internet, et cette dernière doit par conséquent
être fractionnée en de nombreux paquets IP.
Les paquets IP, outre l'information, sont constitués d'un en-tête
contenant l'adresse IP de l'expéditeur (votre ordinateur) et celle
du destinataire (l'ordinateur que vous voulez atteindre), ainsi qu'un nombre
de contrôle déterminé par l'information emballée
dans le paquet : ce nombre de contrôle, communément appelé
en-tête de total de contrôle, permet au destinataire
de savoir si le paquet IP a été "abîmé" pendant
son transport.
3. L'adresse IP
Une des choses les plus étonnantes du protocole TCP-IP est d'avoir
attribué un numéro fixe, comme un numéro de téléphone,
à chaque ordinateur connecté sur Internet; ce numéro
est appelé l'adresse IP. Dans le cadre du standard actuel
- IPV4 -, les adresses sont codés sur 32 bits. Ainsi, tout ordinateur
sur Internet, par exemple le vôtre lorsque vous vous connectez par
l'entremise de votre provider, se voit attribuer une adresse de type a.b.c.d
(où a,b,c,d sont des nombres compris entre 0 et 255), par exemple
202.15.170.1. Dès ce moment, vous êtes le seul au monde à
posséder ce numéro, et vous y êtes en principe directement
atteignable.
Un rapide calcul vous montre qu'il y a, en théorie, un maximum
de 2564 = 4'294'967'296 adresses possibles, ou, en d'autres
termes, d'ordinateurs directement connectables, ce qui est plus que suffisant
même à l'échelle mondiale (du moins à l'heure
actuelle !). En fait, il y a beaucoup moins d'adresses que ce nombre
impressionnant, car de nombreux numéros IP ne sont pas autorisés
ou sont utilisés à des fins "techniques".
Pour l'ordinateur, cette adresse IP est codée en binaire (4 x
8 bits = 32 bits). Par exemple,
202 |
15 |
170 |
1 |
11001010 |
00001111 |
10101010 |
00000001 |
Il est clair que pour nous les humains, il est plus facile de retenir 202.15.170.1
que 11001010000011111010101000000001 !
4. Les différents types de réseaux
L'adressage a été structuré logiquement dans une architecture
de réseaux et de sous-réseaux. N'importe qui ne peut s'approprier
librement une adresse IP : ces dernières sont régies par
un organisme international, l'INTERNIC, qui délivre les différentes
adresses ou plutôt les classes de réseaux.
-
Dans un réseau de classe A, le NIC fixe les 8 premiers bits (dits
bits de poids fort) sous la forme 0xxxxxxx; les 24 autres bits sont laissés
à l'administration de l'acquéreur du réseau de classe
A. Dans un tel réseau, les adresses IP sont donc de type F.b.c.d
où F (fixé par le NIC) va de 0 à 126, les valeurs
b, c et d étant laissées librement administrables par l'acquéreur.
De grandes sociétés ont ce type de réseau; par exemple,
Hewlett-Packard possède le réseau 16.b.c.d (qu'on note aussi
16.0.0.0). Vous noterez que seuls 127 réseaux de ce type sont disponibles.
-
Dans un réseau de classe B, le NIC fixe les 16 premiers bits sous
la forme 0xxxxxxx yyyyyyyy, ce qui donne des réseaux de type F.G.0.0
où F (128-191) et G (0 à 255) sont fixés par le NIC.
-
Dans un réseau de classe C, le NIC fixe les 24 premiers bits sous
la forme 110xxxxx yyyyyyyy zzzzzzzz, ce qui donne des réseaux de
type F.G.H.0 où F (192-223), G et H (0-255) sont fixés par
le NIC.
-
Tout le réseau 127.0.0.0 (qu'on peut voir comme
un réseau de classe A) n'est pas attribué par le NIC, car
l'adresse 127.0.0.1, dite adresse de boucle, est réservée
à des fins techniques. Dommage, car 24 millions d'adresses sont
ainsi perdues !
-
De plus, le NIC n'attribue pas non plus certains réseaux qui sont
laissés à des fins privées. Ces plages d'adresses
généralement non routées par les fournisseurs d'accès,
en d'autres termes des plages attribuables tout à fait légalement
pour des réseaux internes, vont
de 10.0.0.0 à 10.255.255.255
de 172.16.0.0 à 172.31.255.255
de 192.168.0.0 à 192.168.255.255
Typiquement, si vous créez votre propre réseau local en
TCP-IP, vous utiliserez pour vos ordinateurs ce type d'adresses. Je reparle
de ce cas dans la partie sur la façon de configurer un
réseau local et le connecter
à Internet.
Il me faut encore rajouter que certaines adresses d'un réseau quelconque
ne sont pas attribuables à un ordinateur précis, mais joue
un rôle "technique" dans TCP-IP.
Prenons l'exemple d'un réseau de classe C comme 192.168.0.x,
x pouvant varier entre 0 et 255.
Cette plage d'adresses doit être indiquée de manière
officielle, et on utilise pour cela l'adresse générale 192.168.0.0,
ce qui veut dire "toutes les adresses comprises entre 192.168.0.0 et 192.168.0.255".
Remarquez que cela signifie que vous ne pourrez jamais attribuer l'adresse
192.168.0.0 à un ordinateur précis, puisque cette dernière
fait référence à tout le réseau.
Il existe une autre adresse IP réservée : l'adresse
de diffusion (broadcast). C'est la dernière adresse du sous-réseau,
dans notre cas 192.168.0.255. Il s'agit de l'adresse que vous utilisez
pour diffuser un message vers chaque ordinateur du sous-réseau concerné.
Finalement, ce qui sera l'objet du paragraphe 6, vous devez réserver
une adresse IP du routeur par défaut : c'est l'adresse "passerelle"
qui permettra à des paquets IP de "quitter" votre sous-réseau.
5. La subdivision en sous-réseaux
Comment un ordinateur transmet-il l'information (les paquets IP) à
son destinataire ? Une partie de la réponse se trouve dans le fonctionnement
du protocole IP.
Généralement, un ordinateur ne peut transmettre directement
un paquet IP qu'à un ordinateur situé sur le même sous-réseau.
Par exemple, un ordinateur possédant l'adresse IP 192.168.0.2 pourra
directement envoyer de l'information à un ordinateur "voisin" d'adresse
192.168.0.20, mais il ne pourra pas le faire avec un ordinateur d'adresse
194.38.175.55. Pour simplifier, on dira en première approche qu'un
ordinateur ne peut communiquer directement qu'avec un ordinateur possédant
les trois premiers nombres de l'adresse IP identiques. Cette remarque n'est
malheureusement pas théoriquement juste (même si en pratique,
c'est assez souvent le cas pour des réseaux simples). En fait, c'est
le concept de masque de sous-réseau qui définit ce
qu'un ordinateur peut "voir" ou ne pas voir.
Le masque de sous-réseau que vous avez peut-être eu l'occasion
d'utiliser, si vous utilisez TCP-IP pour un réseau local, est 255.255.255.0.
Ce masque veut dire que l'ordinateur concerné peut "voir" (ou communiquer
avec) tous les ordinateurs possédant les trois premiers nombres
de l'adresse IP identiques, comme je l'ai indiqué à l'exemple
précédent. Comment fonctionne ce système à
première vue aussi compliqué ?
En fait, admettons que l'ordinateur A d'adresse IP 199.34.57.10 veuille
envoyer un paquet IP à l'ordinateur B d'adresse IP 199.34.57.20.
A priori, A ne sait pas s'il peut communiquer directement avec B. Pour
cela, il utilise le masque de sous-réseau 255.255.255.0 qu'on lui
a imposé. Il "convertit" le tout en binaire, ce qui donne :
11111111 |
11111111 |
11111111 |
00000000 |
masque sous-réseau |
11000111 |
00100010 |
00111001 |
00001010 |
adresse de A |
11000111 |
00100010 |
00111001 |
00010100 |
adresse de B |
L'ordinateur A doit s'assurer que partout où le masque de sous-réseau
a une valeur de 1, la valeur binaire de son adresse IP corresponde à
celle de B. Dans l'exemple ci-dessus, il n'est pas difficile de voir que
c'est le cas; finalement, les 8 derniers bits de valeur 0 indiquent que
le dernier nombre de l'adresse IP est indifférent pour A : ce dernier
verra donc tous les ordinateurs d'adresse 199.34.57.x, x étant compris
entre 0 et 255.
Cet exemple paraît trivial, pourtant de nombreux réseaux
comportent des masques de sous-réseaux moins compréhensibles
(pas uniquement des 0 et des 255), comme par exemple 255.255.255.224. Si
vous refaites le même raisonnement, vous verrez qu'avec un tel masque,
l'ordinateur 192.168.0.2 ne peut directement communiquer avec l'ordinateur
192.168.0.100 ! En fait, les 256 adresses de ce réseau de classe
C seront comme subdivisées en 8 sous-réseaux de 32 ordinateurs.
Ainsi, les ordinateurs 192.168.0.0 à 192.168.0.31 pourront communiquer
entre eux,
de mêmes que les ordinateurs 192.168.0.32 à 192.168.0.63,
les ordinateurs 192.168.0.64 à 192.168.0.95,
les ordinateurs 192.168.0.96 à 192.168.0.127,
les ordinateurs 192.168.0.128 à 192.168.0.159,
les ordinateurs 192.168.0.160 à 192.168.0.191,
les ordinateurs 192.168.0.192 à 192.168.0.223,
et les ordinateurs 192.168.0.224 à 192.168.0.255,
mais ces sous-réseaux ne pourront pas communiquer directement
entre eux.
Cette subdivision d'un réseau de classe C en plusieurs sous-réseaux
peut être utile pour un fournisseur d'accès. Vous pouvez calculer
aisément les masques de sous-réseaux suivants selon le nombre
de sous-réseaux que vous souhaitez créer.
nombre de sous-réseaux |
IP par sous-réseau |
masque de sous-réseau |
1 |
256 |
255.255.255.000 |
2 |
128 |
255.255.255.128 |
4 |
64 |
255.255.255.192 |
8 |
32 |
255.255.255.224 |
16 |
16 |
255.255.255.240 |
32 |
8 |
255.255.255.248 |
En fait, nous avons vu au paragraphe précédent que pour chaque
sous-réseau il faut déduire trois adresses IP non attribuables
à un ordinateur :
-
l'adresse de sous-réseau (généralement le premier
IP du sous-réseau), par exemple a.b.c.0 pour un réseau composé
d'un seul sous-réseau, ou a.b.c.64 pour le troisième sous-réseau
d'un réseau divisé en 8 sous-réseaux.
-
l'adresse de diffusion (généralement le dernier IP du sous-réseau),
par exemple, en reprenant les deux exemples précédents, a.b.c.255
ou a.b.c.95.
-
l'adresse du routeur par défaut dont je parle un peu plus loin,
par exemple a.b.c.1 ou a.b.c.65.
Chaque sous-réseau "perd" donc trois adresses IP; il s'ensuit qu'une
subdivision excessive d'un réseau n'est pas avantageuse (on divise
rarement au-delà de 8 sous-réseaux).
6. Le routage des paquets IP et le protocole TCP
Revenons à notre ordinateur A d'adresse 192.168.0.2 (mettons-lui
un masque de sous-réseau de 255.255.255.0). Admettons qu'il veuille
envoyer un paquet IP à ordinateur B d'adresse 192.170.0.4. En utilisant
le masque de sous-réseau, A comprend qu'il ne peut atteindre directement
B. Que fait-il donc ? Il envoie sans réfléchir le paquet
IP à l'adresse du routeur par défaut (disons que ce dernier
a été défini comme 192.168.0.254).
Qu'est-ce que ce routeur ? Le routeur est une machine pouvant
"jouer sur plusieurs sous-réseaux" en même temps. Typiquement,
si on utilise un ordinateur, ce dernier possèdera deux cartes réseaux,
l'une connectée sur l'un des sous-réseaux (dans notre cas,
disons qu'elle possède l'adresse 192.168.0.254), l'autre connectée
sur l'autre sous-réseau (disons 192.170.0.192). S'il utilise le
bon logiciel, un tel ordinateur est capable de faire transiter des paquets
IP du réseau 192.168.0.0 vers le réseau 192.170.0.0, et inversément
bien sûr.
Deux petites remarques s'imposent. Tout d'abord, vous l'aurez compris,
c'est donc grâce à des routeurs que différents sous-réseaux
d'un réseau de classe C peuvent communiquer entre eux, par exemple
l'ordinateur 192.168.0.2 avec l'ordinateur 192.168.0.120 d'un réseau
de classe C subdivisé en 8 sous-réseaux (masque de sous réseau
255.255.255.224). La seconde remarque est d'ordre plus pratique : vous
retiendrez que Windows 95 n'est pas capable de faire du routage, bien qu'il
soit tout à fait possible d'installer deux cartes réseaux
(avec des IP différents) dans un ordinateur tournant sous ce système;
par contre, Windows NT 4.0, même en version Workstation, est capable
d'une telle fonction.
Question pertinente : pourquoi subdiviser et ne pas faire de "méga"
réseaux ?
Les deux points suivants expliquent en partie pourquoi on procède
ainsi.
-
Limiter le trafic sur un tronçon donné. Imaginons deux réseaux
locaux A et B séparés par un routeur. Lorsque des ordinateurs
de A discutent avec des ordinateurs de B, le routeur a pour rôle
de transmettre l'information du réseau A vers le réseau B
(et inversément). Par contre, si des ordinateurs de A s'échangent
entre eux des données, il n'y a pas de raison qu'ils encombrent
inutilement le trafic sur le réseau B, et c'est bien pour cette
raison que les réseaux A et B sont distincts.
Autre évidence : si le réseau A tombe en panne, le réseau
B n'en est pas affecté. C'est d'ailleurs l'avantage principal de
subdiviser : éviter qu'un ennui technique qui pourrait rester localisé
ne perturbe la totalité du réseau
-
Autre aspect non négligeable : le broadcast (diffusion).
Vous ne le savez peut-être pas, mais dans votre dos, les ordinateurs
sont de grands bavards : ils ne cessent de causer entre eux pour signaler
leur présence ou se mettre d'accord sur les protocoles qu'ils sont
capables de comprendre. Pensez un peu si Internet n'était constitué
que d'un seul segment : le broadcast seul des ordinateurs utiliserait l'intégralité
de la bande passante avant même qu'un seul octet de données
ait pu être transmis ! Pour cette raison, le travail des routeurs
est non seulement de faire transiter les paquets IP, mais aussi de filtrer
le broadcast local qui n'intéresse pas la planète entière.
Vous comprendrez par là que les routeurs jouent un rôle essentiel
pour éviter la saturation du trafic.
Disons encore quelques mots sur l'acheminement des paquets IP. Vous comprenez
maintenant que lorsqu'un ordinateur doit acheminer un paquet IP, il vérifie
tout d'abord s'il peut le transmettre directement (grâce au masque
de sous-réseau); s'il ne peut pas, il l'envoie bêtement, sans
réfléchir, au routeur par défaut. Et ainsi de suite,
le routeur regarde s'il peut transmettre directement le paquet à
son destinataire (n'oublions pas que le paquet IP contient les adresses
IP de l'expéditeur et du destinataire !), et, s'il ne peut le faire,
le transmet à son routeur par défaut, etc.
Or le protocole IP néglige un point crucial : il ne vérifie
nullement le bon acheminement des paquets IP. En d'autres termes, l'ordinateur
expéditeur, dans le protocole IP, ne fait qu'envoyer le paquet IP
plus loin; il ne s'intéresse pas du tout de savoir si le paquet
a bien été reçu ou s'il a été endommagé
pendant le transfert !
Qui doit donc assurer l'intégrité point à point,
si ce n'est IP ? La réponse : son copain, TCP.
Le protocole de contrôle de transmission ou TCP (Transmission
Control Protocol) vérifie donc le bon acheminement d'un paquet
IP. Cela se fait de la façon suivante. Admettons que A veuille transmettre
un paquet IP à B (connexion "directe"). A envoie (un peu à
l'aveugle) son paquet IP à B, un peu comme une bouteille à
la mer. Tant que A ne recevra pas un accusé de réception
de B lui indiquant que ce dernier a bien reçu le paquet IP dans
son intégrité (grâce à l'en-tête de total
de contrôle), il renverra à intervalles réguliers le
même paquet IP à B. Il n'arrêtera d'envoyer ce paquet
qu'à la confirmation de B. Ce dernier agira ensuite de même
s'il doit transmettre le paquet plus loin. Si B constate que le paquet
qu'il a reçu est abimé, il n'enverra pas de confirmation,
de manière à ce que A lui renvoie un paquet "neuf".
TCP fournit d'autres services sur lequels je ne m'attarderai pas ici.
On résumera rapidement les principales fonctionnalités du
protocole TCP ainsi :
-
l'établissement d'une liaison
-
le séquençage des paquets
-
le contrôle de flux
-
la gestion d'erreurs
-
le message d'établissement d'une liaison
On entend par "contrôle de flux" la capacité de TCP, entre
autres, de reconstituer l'information originale à partir de paquets
IP arrivés (souvent) dans le désordre le plus absolu.
C'est aussi TCP qui gère la notion de "sockets" (ports d'écoute)
dont je parle dans la partie concernant la façon de configurer un
réseau local et le connecter à Internet.
7. Le système de désignation de noms
(DNS)
Maintenant que vous avez compris (j'espère !) comment circulent
les paquets IP à travers Internet, il me reste à donner rapidement
quelques explications sur le système de désignation de noms,
en anglais Domain Name System (DNS). Vous avez vu plus haut que
tout ordinateur connecté à Internet possède un numéro
IP qui lui est propre. Pour communiquer avec un autre ordinateur, il vous
faut connaître son adresse IP. Or, lorsque vous "surfez" sur le net,
vous écrivez très rarement de tels numéros dans votre
browser. C'est tout simplement que vous faites appel, sans le savoir, à
un serveur DNS.
Un serveur DNS est simplement une machine qui associe le numéro
IP à une adresse plus facilement mémorisable, bref une sorte
d'annuaire téléphonique pour Internet. Ainsi, la machine
qui répond lorsque vous tapez http://www.microsoft.com dans votre
browser possède en fait l'adresse IP 207.68.137.65. Si vous tapiez
http://207.68.137.65, vous obtiendriez exactement le même résultat.
Un (ou plusieurs) serveur DNS se trouvent généralement chez
votre provider; vous avez d'ailleurs sûrement reçu une feuille
de configuration vous indiquant un ou deux numéros IP pour ces serveurs
lors de la configuration de votre connexion à votre provider.
Une manière simple de constater l'utilité
d'un serveur DNS est d'ouvrir (sous Windows 95) une fenêtre DOS,
et de taper ping 'adresse de l'hôte', par exemple ping www.microsoft.com.
"Ping" est une fonction très utile dans l'établissement de
réseau : c'est une commande qui envoie un paquet IP tout simple
à un ordinateur et lui demande simplement de répondre. Sous
Windows 95, quatre paquets IP sont envoyés, et si vous avez avez
tapé ping www.microsoft.com par exemple, votre ordinateur devrait
ensuite vous écrire une ligne de type "pinging www.microsoft.com
[207.68.137.65] with 32 bytes of data", suivie de quatre lignes de la forme
"reply from 207.68.137.65: bytes=32 time=550ms TTL=128". Ces quatre dernières
lignes vous indiquent que le serveur Microsoft a répondu (personnellement
!) à vos appels et vous montrent le temps total qu'a pris la transaction
pour chaque ping (par exemple 550 millisecondes). Vous noterez surtout
que le serveur DNS de votre provider aura fait automatiquement la translation
www.microsoft.com <-> 207.68.137.65.
PS : J'ai parlé plus haut de l'adresse IP réservée
127.0.0.1, dite adresse de boucle; un ping sur cette adresse correspond
à un ping "sur soi-même", ce qui permet de tester la bonne
marche de la carte réseau.
8. Résumé et exemples
Résumons en quelques points ce que nous avons vu sur les réseaux
TCP-IP.
-
Chaque ordinateur sur Internet possède une adresse IP, par exemple
195.235.4.6
-
Les adresses IP définissent les termes de réseaux ou de sous-réseaux.
C'est un organisme international, l'INTERNIC, qui attribue les différentes
adresses ou les différents réseaux (classe A, B, C). Ce sont
ensuite les entreprises qui ont acheté les réseaux qui peuvent
les subdiviser en sous-réseaux grâce à l'utilisation
de masques de sous-réseaux adéquats.
-
De nombreuses adresses IP ne sont pas utilisées.
-
L'INTERNIC tout d'abord conserve des adresses utilisables à des
fins privées, par exemple les adresses de type 192.168.0.x
-
L'administrateur d'un réseau doit toujours mettre de côté
trois adresses IP par sous-réseau : l'adresse de sous-réseau
(par exemple 192.168.0.0), l'adresse de diffusion (par exemple 192.168.0.255)
et l'adresse du routeur par défaut.
-
Pour communiquer, l'ordinateur expéditeur fragmente l'information
à envoyer en de nombreux paquets IP qui contiennent, outre l'information,
les adresses IP de l'expéditeur et du destinataire ainsi qu'un en-tête
de total de contrôle.
-
Les paquets IP ne peuvent être transmis directement qu'à un
ordinateur du même sous-réseau (défini par le masque
de sous-réseau). Si l'ordinateur destinataire ne peut être
atteint, l'ordinateur expéditeur envoit le paquet IP à l'adresse
du routeur par défaut qui lui a été spécifié.
-
Le routeur est une machine qui fait transiter les paquets d'un réseau
à un autre (ou d'un sous-réseau à un autre) et qui
utilise donc plusieurs adresses IP (une sur chacun des sous-réseaux
couverts). Par exemple, un routeur possédant les deux adresses IP
196.129.0.1 et 197.160.40.91 peut faire passer des paquets IP du réseau
196.129.0.0 au réseau 197.160.40.0, et inversément.
-
Le protocole IP ne s'occupe que de l'acheminement des paquets IP. La vérification
du transfert de l'intégrité des données est effectuée
par le protocole TCP.

© Pierre, 1998 - pierre.delavallaz
bigfoot.com