III - Un peu de technique
Nous allons voir dans ce chapitre les principes de base qu'il est nécessaire de comprendre pour bien savoir utiliser le réseau qu'est Internet.
Rappelons tout d'abord qu'un réseau informatique est un ensemble de machines connectées entre elles, généralement à l'aide de câbles ou de fibres optiques. On ne trouve cependant pas que des ordinateurs dans un réseau, mais aussi des dispositifs d'interconnexion comme des routeurs. Ces appareils ont pour but de permettre à deux réseaux (ou plus) de dialoguer entre eux.
Internet quant à lui n'est pas vraiment un réseau mais plutôt un ensemble de réseaux interconnectés entre eux par des routeurs. Ces réseaux sont ceux appartenant à des entreprises, universités, administrations, etc. du monde entier. Ils sont reliés entre eux via des liaisons spécialisées à haut débit, mais il faut savoir que certaines machines voire certains réseaux, ne sont connectés à Internet que via de simples lignes téléphoniques (nous en reparlerons plus loin).
o TCP/IP
Nous savons donc maintenant ce qu'est Internet "physiquement" : un réseau de réseaux. Il faut cependant préciser que le fait de relier entre eux des réseaux ne suffit pas pour qu'ils puissent dialoguer ensemble, c'est-à-dire s'échanger des informations. Il faut que tous ces réseaux, et par conséquent toutes les machines qu'ils regroupent, parlent le même "langage". En informatique, ce langage s'appelle un protocole. On peut définir simplement un protocole comme un ensemble de règles et de commandes permettant des transferts d'informations.
Sur Internet, on utilise une famille de protocoles appelée TCP/IP. On parle de famille car en fait le réseau n'utilise pas un seul protocole mais plusieurs qui interagissent entre eux. Nous n'allons pas entrer dans les détails de fonctionnement de ces protocoles, mais nous allons tout de même aborder les principes de base.
Dans les réseaux de type TCP/IP comme Internet, les données qui y circulent sont divisées en paquets, c'est-à-dire que chaque information est découpée en morceaux d'une certaine taille. Le but de cette division en paquets est, entre autres, de permettre la retransmission d'un seul paquet en cas d'erreur sur celui-ci, au lieu de devoir retransmettre l'intégralité de l'information ainsi envoyée. Le protocole qui se charge de l'acheminement de ces paquets est IP ou Internet Protocol. C'est pourquoi on parle souvent de paquets IP. On rencontre aussi parfois le terme datagramme, contraction du mot data (données en anglais) et télégramme. Il faut noter que les différents paquets appartenant à une même transaction peuvent emprunter des chemins différents sur le réseau. C'est une des conséquences du routage (technique d'acheminement des paquets) effectué par les routeurs reliant entre eux les différents réseaux constituant l'Internet.
L'autre protocole principal de l'Internet est, avec IP, TCP, pour Transmission Control Protocol. TCP utilise les services d'IP afin d'établir une communication fiable entre deux machines. Il existe en effet une différence fondamentale entre IP et TCP : le premier fournit un service non garanti (on parle parfois de best effort protocol) alors que TCP ne remet les données à la machine de destination que lorsque celles-ci sont toutes "arrivées" à bon port, et de façon exacte (sans erreurs de transmission). Si ce n'est pas le cas, le protocole TCP se charge d'y remédier. Voilà pourquoi on dit que TCP est un protocole fiable.
Les réseaux TCP/IP utilisent d'autres protocoles qu'IP et TCP. Certains ont des rôles relativement complexes (comme ceux travaillant avec IP pour effectuer le routage des paquets) et ne seront pas abordés ici car il ne sert à rien de connaître leur fonctionnement pour bien savoir utiliser le réseau. D'autres sont au cœur d'applications qui constituent la vitrine de l'Internet, comme le web ou la messagerie. Nous parlerons donc un peu plus de ces derniers, dans les chapitres qui suivront.
o Adresses IP
Nous avons vu plus haut que c'est, entre autres, grâce à IP que fonctionne Internet. Ce protocole permet, rappelons-le, l'acheminement de paquets sur le réseau. Cependant, afin de permettre à une machine émettrice d'envoyer des paquets à une machine réceptrice, il est nécessaire de pouvoir les identifier de façon unique. Cette identification est réalisée grâce à ce qu'on appelle une adresse IP. Chaque machine reliée à Internet doit disposer de sa propre adresse IP et celle-ci ne peut pas être utilisée par une autre machine.
Une adresse IP est structurée actuellement de la façon suivante : elle est composée de quatre nombres entiers, compris entre 0 et 255 (en termes plus techniques, on dit que ces entiers sont codés sur 8 bits), séparés par des points.
Exemple : 192.34.56.78.
Les adresses IP ou Internet sont utilisées en particulier par IP afin de préciser, dans chaque paquet envoyé, l'identification de l'expéditeur et du destinataire. L'adresse du destinataire permet de choisir un chemin adéquat vers celui-ci, tandis que l'adresse de l'expéditeur peut être utilisée pour demander la retransmission de paquets perdus ou arrivés corrompus (c'est-à-dire que les informations qu'ils contiennent ont été modifiées de façon involontaire par le réseau, durant leur trajet).
La structure sur quatre entiers que nous venons de décrire ne concerne que la quatrième version du protocole IP (appelée plus couramment IPv4) ; c'est celle qui est actuellement utilisée sur Internet. Il faut cependant signaler que la nouvelle version d'IP, IPv6, est en cours de mise en place. Cette version apporte quelques améliorations techniques concernant le fonctionnement du protocole mais ce qui est le plus important, c'est la nouvelle structuration des adresses IP. Bientôt, on utilisera seize entiers au lieu de quatre pour spécifier l'adresse d'une machine.
Ces nouvelles adresses, compatibles avec les anciennes, ont été conçues afin de régler le problème de la pénurie d'adresses IP disponibles, résultante de la croissance exponentielle du réseau ces dernières années.
o Adresses DNS
Il est important de connaître l'existence des adresses IP que nous venons de présenter, mais en pratique, il est bien rare que nous ayons à les utiliser pour, par exemple, aller consulter un serveur web.
En fait, on utilise des noms pour désigner les machines connectées à Internet, pour des raisons de simplicité d'utilisation. Ces noms sont appelés adresses DNS où DNS signifie Domain Name System (système par noms de domaines). Le système DNS permet donc d'attribuer un nom à une machine, sachant qu'à chaque nom est associée l'adresse IP de la machine correspondante et que le système est dit hiérarchique (il peut être représenté par arbre). Plus précisément, une adresse DNS est formée de plusieurs mots, comportant lettres ou chiffres, séparés par des points et ne comporte jamais d'espace ou de lettre accentuée. Le mot le plus général se situe à l'extrême droite de l'adresse DNS (on parle de Toplevel Domain Names) , tandis que le plus précis (i.e. désignant une machine déterminée) est à l'extrême gauche.
Remarque : Notez que s'il est obligatoire d'attribuer une adresse IP à une machine connectée à Internet, il n'en est pas de même pour l'adresse DNS. Celle-ci est en effet facultative.
Prenons un exemple afin d'illustrer cette notion d'adresse DNS : www.ibm.com. Cette adresse DNS est celle d'une machine, appartenant à la société IBM, qui héberge le serveur web de cette dernière. Comme nous venons de le voir, la partie la plus précise (c'est-à-dire désignant une machine) se trouve à gauche (www ici) tandis que la moins précise se situe à l'autre extrémité (com). Entre les deux, on distingue le nom de la compagnie IBM à laquelle appartient la machine considérée. On dit donc que cette machine, dont le nom est "www", fait partie du domaine "ibm.com".
L'extrémité droite d'une adresse DNS désigne le domaine le plus vaste, comme nous l'avons dit. On distingue, aujourd'hui, sept principaux domaines de plus haut niveau :
En plus de ces domaines, qui concernent principalement l'Amérique du Nord, il en existe d'autres relatifs aux autres pays. Par exemple :
Précisons deux points pour finir cette présentation du DNS.
Tout d'abord, il faut savoir que d'autres domaines de haut niveau comme ceux que nous venons de lister (.com, .org, etc.) ont été récemment définis afin de mieux répertorier les machines qui aujourd'hui appartiennent au domaine ".com". On peut citer par exemple : .firm, .arts, .web etc.
L'autre remarque est que contrairement à ce que l'on pourrait penser, deux machines appartenant au même domaine ne sont pas forcément situées physiquement à proximité l'une de l'autre. Par exemple, les machines pc1.abcd.com et pc2.abcd.com pourrait appartenir à des pays différents.
o Le client/serveur
Dans les pages qui précèdent, nous avons déjà parlé de serveurs (web par exemple), sans définir cette notion que nous allons rencontrer tout au long de ce document. Il est cependant important de bien comprendre le concept de client/serveur. Pour clarifier ce concept, prenons une comparaison imagée : considérons un restaurant. Lorsqu’un client entre, celui-ci est "pris en charge" par un membre du personnel du restaurant, à savoir un serveur. Le serveur a pour rôle, comme son nom l’indique, de servir le client : il lui fournit un service. De plus, un serveur s’occupe généralement de plusieurs clients.
Sur un réseau comme Internet, il existe de nombreux serveurs, tels les serveurs web dont nous avons déjà parlé plus haut. Ceux-ci fournissent des services à des clients, comme dans notre exemple du restaurant. Ces services correspondent à la mise à disposition de documents (textes, images, sons,…). Dans le cas des serveurs web, les utilisateurs les consultent grâce à un programme, appelé client web ou navigateur (nous en reparlerons). De même, un serveur est capable de traiter plusieurs clients simultanément, comme dans notre exemple.
Notons par ailleurs que les différents serveurs que l’on rencontre ne sont pas tous de type "web". Nous en reparlerons également plus loin. Signalons enfin un dernier point : un serveur, quel qu’il soit, n’est rien d’autre qu’un logiciel spécialisé qui fonctionne en permanence sur une machine, à l’attente d’une connexion venant d’un client. Cependant, il arrive fréquemment que l’on qualifie de serveur la machine qui héberge le logiciel en question : ce n’est qu’un abus de langage.