Avant de pouvoir utiliser les services de l'Internet, il faut disposer de certains matériels et connecter (raccorder) ceux-ci à ce réseau. Dans de nombreux articles de presse ou l'on désigne l'Internet sous les termes d'<<Autoroute de l'information>>, <<Infocosme>>, <<The Net>>, <<Cyberspace>>... on oublie de préciser ces deux pré-requis.
Actuellement, il est obligatoire de disposer d'un équipement informatique (micro ou station de travail, en dernier ressort terminal) pour utiliser les services de l'Internet. Cet équipement est généralement désigné par le terme générique de station ou de machine. Ainsi, si l'on veut transporter sur ce réseau des images animées ou du son, signaux qui ne sont pas générés par un ordinateur, ces signaux doivent transiter par une station informatique afin d'être numérisés et mis en paquets. Pour cette raison, on pourrait qualifier l'Internet de réseau informatique.
Ensuite, il faut connecter physiquement, par un fil, la station au reste de l'Internet. Si celle-ci est sur un réseau local (Ethernet de campus, par exemple), déjà connecté à l'Internet, il n'y a (presque) rien à faire, la connexion s'établit de proche en proche. Si elle est <<isolée>> (au domicile, par exemple), il faut la relier à un <<point d'accès>> connecté à l'Internet. Ce point est généralement géré par un prestataire de <<services d'accès à l'Internet>>, qui facture cette prestation. Le lien peut être réalisé par une liaison permanente louée à France Telecom ou un abonnement à un réseau public (téléphone, Numeris, Transpac). Pour que la machine puisse communiquer avec le point d'accès, il faut aussi ajouter un modem, intégré ou non dans l'équipement informatique.
L'étape suivante consiste à identifier la station sur l'Internet en lui donnant un nom et une adresse (IP), éléments que l'on obtient auprès de certaines instances, TCP/IP) et les logiciels d'application : Telnet, FTP, mail, Wais, Gopher, Mosaic... selon ce que l'on veut faire.
Par commodité, on peut classer les services en trois familles : classiques (de type informatique), d'accès à l'information et de communication entre personnes.
On peut regarder l'Internet avec les lunettes d'un économiste comme un ensemble de consommateurs et de producteurs d'information. Un consommateur utilise l'Internet pour travailler avec une informatique distribuée (connexion en mode terminal sur un ordinateur distant, transfert de fichiers entre ordinateurs, exécution partagée de programmes entre plusieurs stations...) ou accède à des informations de tous types (textes, images fixes ou animées, sons, sous différents formats) dans des bases de données distribuées avec des outils logiciels très divers (FTP anonymous, Whois, Wais, Gopher, WWW...). Ces ressources et ces informations proviennent de producteurs. Ceux-ci peuvent mettre à disposition, rendre accessibles, en contrôlant les accès et éventuellement en facturant, leurs équipements informatiques (serveurs de calcul, disques, imprimantes...) ou leurs différentes informations (bases de données). De nombreux sites sont à la fois consommateurs et producteurs, ainsi cette distinction n'est pas exclusive.
Les motivations qui poussent les producteurs, à titre personnel ou pour leur employeur, à mettre à disposition gratuitement des informations sur ce réseau sont multiples (si ce n'est pas gratuit, le but est évident) :
Pour utiliser un des services, il est nécessaire d'installer sur son ordinateur le logiciel correspondant. Si l'on est un consommateur, on installera une version cliente, l'ordinateur deviendra <<station cliente>>, et si l'on est un producteur, une version serveur, l'ordinateur deviendra <<station serveur>> ou <<serveur>>). Le logiciel client enverra des requêtes au logiciel serveur, qui lui répondra.
Techniquement, les échanges entre client et serveur sont les plus directs possible. Le passage par une machine intermédiaire ou le stockage temporaire des informations sur cette machine intermédiaire sont rarement pratiqués. Ainsi, pour envoyer un message d'un serveur de messagerie français vers un serveur de messagerie au Japon, il y a établissement d'une communication (TCP) directe entre les deux serveurs, sans passer par un serveur national intermédiaire, comme cela se pratique dans EARN ou X400 (autres réseaux de messagerie). De même, un simple micro client, pour accéder à des bases de données, établit directement une communication avec chaque serveur qu'il interroge, sans transiter par un serveur local.
Du côté porte-monnaie, une des caractéristiques (négligeable ?) de la majorité des programmes client ou serveur est la gratuité. Ils sont ainsi dénommés <<logiciels du domaine public>> ou <<freeware>>. Eventuellement ils sont <<shareware>>, l'auteur demandant de lui envoyer quelques dollars. On peut, évidemment, récupérer les sources sur l'Internet (par FTP anonymous ou autres moyens). Pour Macintosh, par exemple, le seul logiciel à acheter sera MacTCP, qui est le logiciel de communication de base TCP/IP. Le reste (Telnet, Fetch, Archie, Wais, Gopher, Mosaic...) est gratuit.
Une autre particularité de ces logiciels, c'est qu'ils sont maintenant très conviviaux et ne nécessitent pas de culture informatique, mais uniquement une petite <<fiche cuisine>> pour configurer deux ou trois paramètres importants. Il n'en a pas toujours été de même. Il y a quelques années, les logiciels utilisaient intensivement les touches <contrôle> ou <escape>, ce qui nécessitait l'apprentissage de commandes étranges et demandait une pratique informatique courante. L'Internet était alors vu comme un réseau réservé à des experts.
En regardant uniquement les composants matériels, on pourrait dire que l'Internet est formé de stations (ordinateurs), de liens (fils) et d'équipements de communication. Ces derniers ont une fonction transparente pour l'utilisateur et souvent nébuleuse pour les béotiens. Ils permettent de raccorder les différents liens, de mettre en forme les signaux qui circulent sur les fils, et de garantir le transport de la source jusqu'au destinataire. Ce sont les modems, les répéteurs, les commutateurs, les routeurs...
Pour comprendre un peu mieux le maillage d'Internet une approche consiste à suivre le cheminement des informations à travers les fils en cuivre ou en fibre optique, éventuellement les liaisons satellites. Deux exemples, en se référant aux schémas des pages suivantes (dans ces derniers, R désigne un équipement de communication).
Soit une station de travail dans un laboratoire de recherche sur un campus à Grenoble. Cette station avec un coupleur Ethernet est connectée sur le réseau local Ethernet du laboratoire. L'utilisateur communique sur cet ordinateur (Telnet, FTP ou Mosaic...) avec une machine au MIT (Massachusetts Institute of Technology) à Boston. Suivons les fils par lesquels va transiter l'information émise par la station. Cette information est transformée en bits puis en signaux électroniques ou optiques.
Autre exemple, légèrement différent : une PME, dans une zone industrielle de la banlieue parisienne, désire transférer des fichiers vers le laboratoire de recherche de Xerox à Grenoble. Cette PME est cliente d'Oleane, un prestataire privé de services d'accès à l'Internet. Xerox est client du réseau régional ARAMIS. Avec de faibles besoins en réseau et de faibles moyens, la PME utilise un Macintosh avec un modem intégré à 14 400 bits/s et le réseau téléphonique pour ses communications avec l'Internet. Le chemin emprunté par les informations sera le suivant :
Il est évident que les combinaisons sont multiples. La PME pourrait avoir un réseau Ethernet, avoir une ligne louée vers Oleane, vouloir dialoguer avec le MIT ou l'Allemagne...
Les liaisons dans les campus, les réseaux régionaux, Renater... ne sont pas réservées à un couple de communicants mais sont partagées par des milliers, voire des centaines de milliers d'utilisateurs. Ainsi, à un instant donné, des centaines de communications simultanées peuvent voyager sur le même fil physique.
La toile d'araignée de tous ces liens forme l'infrastructure de communication.
TCP/IP est le langage commun parlé par toutes les stations de l'Internet pour communiquer entre elles ainsi que par certains équipements de communication (routeurs). Code de la route unique, il permet à chaque station de dialoguer avec toutes les autres. C'est le ciment de l'édifice. TCP/IP désigne un ensemble de protocoles de communication sur lequel sont construites de très nombreuses applications. En regardant d'un peu plus près ces protocoles, on comprend mieux certaines caractéristiques de l'Internet et certains paramétrages ou certains messages d'erreur dans les logiciels. C'est le but de ce paragraphe.
Sur l'Internet, tous les protocoles et les dialogues entre applications sont définis par des documents qui servent de référence, les RFCs, (Request For Comments).
Ces documents sont disponibles sur l'Internet. Tous les utilisateurs peuvent les consulter gratuitement, en particulier les sociétés qui désirent développer des produits en suivant ces standards.
N'importe qui peut proposer un RFC. Ils sont généralement rédigés par un ou plusieurs experts techniques à titre personnel et sont souvent le résultat de groupes de travail de l'IETF. Toutes les versions brouillon de nouveaux RFCs sont diffusées sur l'Internet. Chacun peut alors faire des remarques, critiques... à l'auteur. Ces documents, dès leur version provisoire, sont une base de référence pour développer des produits sur plusieurs plates-formes différentes. Au bout de quelques mois, après avoir fait les corrections nécessaires suite, entre autres, aux essais d'interopérabilité entre différents produits développés, les RFCs peuvent devenir vraiment des standards. Le fait d'avoir plusieurs produits testés qui suivent un protocole avant de l'officialiser permet de vérifier qu'il est correct, que des produits qui respectent ses spécifications peuvent être créés et qu'ils communiquent entre eux.
Ainsi, ces standards sont publics, produits indépendamment des constructeurs et ils fonctionnent. Ce n'est pas le cas de protocoles constructeurs dont on n'a jamais vu les spécifications, ou parfois de normes internationales qui, trop théoriques et trop complexes, n'ont jamais pu être implémentées correctement et donner naissance à des produits opérationnels.
A noter que certains RFCs, appelés FYI (For Your Information) ne décrivent pas un protocole mais sont simplement des documents d'information destinés aux nouveaux venus sur l'Internet. Il existe déjà 25 FYIs, parmi lesquels <<Answers to Commonly asked `New Internet User' Questions>>, <<Internet Glossary>> et <<What is the Internet>>.
(cf. sur l'Internet ftp://ftp.urec.fr/pub/reseaux/docs/intro-docs/FYIs.)
Le protocole de base est IP. Il repose, en simplifiant légèrement, sur les principes suivants :
Une entrée spéciale de la table, appelée route par défaut, default route, indique le routeur (qui dans ce cas est aussi appelé default gateway) ou doivent être envoyés les datagrammes pour lesquels il n'y a pas une autre entrée dans la table. Cela réduit considérablement la taille de la table de routage des routeurs qui sont <<à la périphérie>> de l'Internet, comme le routeur entre un site et le réseau régional. En effet, ce routeur a uniquement besoin de connaître la liste des réseaux internes. S'il reçoit un datagramme dont l'adresse de destination est une adresse de réseau interne, il l'enverra vers l'intérieur du site. Dans le cas contraire, quelle que soit l'adresse, il l'enverra vers le prochain routeur sur le réseau régional (ce sera sa route par défaut). Une station de travail ou un micro, raccordés à l'Internet, possèdent tout deux une table de routage, avec la même fonction que dans les routeurs. Dans cette table, il suffit souvent d'indiquer la route par défaut vers le routeur de sortie du réseau local. Cela est réalisé par la commande route add net default sur Unix ou dans la configuration de la Gateway Address de MacTCP.
Mais les routeurs du <<coeur>> de l'Internet, qui réalisent les interconnexions internationales par exemple, ne peuvent pas avoir une route par défaut (vers ou pourrait-elle pointer ?). Ils ont donc besoin de connaître la liste de tous les réseaux du monde qui sont réellement connectés sur l'Internet. Et cela en temps réel. Quand on sait que chaque jour des dizaines de nouveaux réseaux sont connectés sur l'Internet, que d'autres disparaissent ou changent de liaisons, une mise à jour manuelle des tables serait très lourde, voire impossible. Pour automatiser cette t,che, les routeurs dialoguent entre eux pour s'échanger leur table de routage. Différents langages, appelés protocoles de routage (comme RIP, BGP, EGP, OSPF, IGRP...), existent pour échanger ces informations. Ainsi, quand sur un site un nouveau réseau de classe C est installé et veut accéder au réseau régional, le routeur de sortie du site avertit en temps réel le routeur du réseau régional, qui lui-même propage cette information aux routeurs de Renater... Ainsi, de proche en proche, tous les routeurs du <<coeur>> de l'Internet sont avertis et mettent à jour leur table de routage.
Cette dynamique permet d'absorber les modifications dans tous les réseaux qui forment l'Internet (un ajout de liaison, de réseaux, une coupure de ligne...) en douceur, sans avoir à avertir tous les opérateurs des routeurs de l'Internet. Il n'y a donc pas besoin d'un poste de pilotage central de l'Internet. De plus, les t,ches d'administration de réseau sont légères et les extensions ou les reconfigurations très simples. Ainsi, avec la technique IP, l'Internet a pu grossir rapidement sans un effort d'exploitation de la part des opérateurs, proportionnel à l'expansion.
Le réseau est aussi très robuste. Si, entre deux interlocuteurs, sur le chemin, une liaison est coupée et qu'il existe un autre itinéraire (ce qui est le cas dans les connexions internationales, voire nationales), les routeurs s'adaptent et les datagrammes suivent ce nouvel itinéraire sans interruption de la communication. Ainsi, l'Internet peut mieux résister à des attaques militaires, telles que les imaginaient les concepteurs d'ARPANET.
Chaque routeur ne connaissant que le routeur suivant et ses routes pouvant changer dynamiquement, il est impossible de savoir avec certitude quel sera l'itinéraire emprunté par un datagramme que l'on envoie, a fortiori par une séquence de plusieurs milliers de datagrammes. En conséquence, on ne peut pas avoir une idée du débit disponible entre deux utilisateurs (bande passante, largeur du tuyau) et du temps que mettra l'information pour aller de l'émetteur au destinataire (temps de transit). De plus, si un routeur ne sait pas ou envoyer un datagramme ou s'il n'a pas le temps de le traiter (files d'attente pleines...), il le jette sans autre forme de procès (en avertissant éventuellement l'émetteur, mais ce n'est pas obligatoire). IP est pour ces raisons souvent traité de réseau <<best effort>>. Or les nouveaux types de trafics, voix et image animée, demandent certaines garanties de qualité de service. Il faut ainsi une bande passante réservée pour chaque communication téléphonique ou vidéo, avec des délais de transit faibles et constants. Autrement la voix est inaudible, l'image est hachée et tout est désynchronisé. Le réseau téléphonique actuel, par exemple, réserve pour chaque communication une bande passante (tuyau) de 64 Kbit/s entre les deux correspondants, avec un délai de transit inférieur à une certaine valeur.
L'Internet, basé sur IP actuel, est ainsi mal armé pour les nouveaux besoins de communication sur les réseaux informatiques comme la voix et l'image. Mais IP étant actuellement le protocole incontournable et qui marche, de nombreux développements au niveau des applications, des routeurs... visent à pallier ces problèmes.
L'autre principe qui a une conséquence importante dans un réseau de réseaux est le fait que chaque routeur se base uniquement sur l'adresse du destinataire pour décider ou envoyer le datagramme. Or il serait souvent souhaitable de pouvoir trier avec d'autres critères. Concrètement, on aimerait que certaines liaisons ne soient empruntées que par les datagrammes qui proviennent des sites qui paient cette liaison. Il faudrait donc que les routeurs regardent l'adresse d'origine pour orienter les datagrammes. Cela n'est pas possible actuellement. Devant ces impossibilités techniques les différents opérateurs ouvrent généralement leurs liaisons à toute la communauté, en négociant des accords de réciprocité ou de participation au financement avec leurs concurrents.
Le monde a été découpé en <<top level domains>>, le dernier suffixe dans le nom. Il y a généralement un <<top level domain>> par pays (fr pour France, de pour Allemagne, au pour Autriche, jp pour Japon...), dont les deux lettres correspondent au code ISO-3166 du pays. Pour les Etats-Unis, qui sont à l'origine de ce nommage qui n'était peut-être pas prévu initialement pour devenir mondial, ont plusieurs <<top level domains>> : gov pour les agences gouvernementales, mil pour l'armée américaine et us (avec comme sous-domaines les codes des Etats) pour une classification géographique (lycées, particuliers...). On trouve encore arpa pour d'<<anciens>> sites venant de ARPANET. Pour les entités américaines ou les entités qui couvrent plusieurs pays, il y a com pour les entreprises commerciales, edu pour l'enseignement supérieur et la recherche, net pour les opérateurs de réseaux, org pour ce qui ne peut pas être classé ailleurs, et récemment int pour les organisations créées par des traités internationaux ou les bases de données internationales.
Sous chaque <<top level domain>>, on trouve comme noms de domaines les noms d'organisations. Ainsi, sous fr sont déclarés plus de 600 domaines différents, tels que bnp.fr (Banque nationale de Paris), edf.fr (Electricité de France), mindef.fr (ministère de la défense), merlin-gerin.fr (Merlin Gerin), univ-lyon1.fr (université de Lyon 1), cnrs-lish.fr (laboratoire d'informatique pour les sciences de l'homme du CNRS).
Sous chacun de ces domaines, on pourra trouver des noms de machines, ou, de nouveau, des noms de domaines, si l'organisation souhaite installer une séparation au sens des noms entre les structures internes (par exemple, chaque direction dans une grande entreprise).
Pour chaque <<top level domain>> il y a un gestionnaire officiel (NIC dont elle relève, c'est elle qui affecte librement un nom à chacune de ses machines. Ce système permet l'unicité des noms.
Il reste le problème de la correspondance nom-adresse IP, aussi appelée résolution de nom.
Cela peut être réalisé en consultant et en maintenant à jour manuellement une table sur chaque machine (fichier /etc/hosts sous Unix). C'était courant, ça tombe en désuétude, car chaque nouvelle machine que l'on veut atteindre doit être ajoutée manuellement dans cette table. Avec cette méthode, on ne peut pas utiliser des logiciels de navigation tels que Mosaic, qui permettent d'accéder de manière transparente à des milliers de machines.
Ce qui est maintenant utilisé dans tout l'Internet est le système DNS (Domain Name System), formé de bases de données, de serveurs et de logiciels d'interrogation. En simplifiant, voici le principe.
Pour chaque domaine de niveau 2 (organisation), il y a une base de données, souvent stockée sur une machine dans le domaine, qui contient le nom et l'adresse de toutes les stations du domaine. Cette base est gérée tout à fait localement par l'administrateur du réseau local, qui ajoute le nom de chaque nouvelle station connectée dans son domaine. Cette base est consultable depuis n'importe quelle station sur l'Internet, la machine qui l'héberge est appelée serveur de noms du domaine.
Pour chaque <<top level domain>> il y a une base de données (hébergée sur une machine) qui contient l'adresse IP de tous les serveurs de noms des domaines de niveau 2. En France, la machine inria.inria.fr (192.93.2.1) contient ces informations. Elle est serveur de noms pour le domaine .fr. Elle contient les adresses des serveurs de noms des domaines bnp.fr, edf.fr...
A la racine de l'arbre, une machine connaît les adresses IP des serveurs de noms de chaque <<top level domain>> (.fr, .de...).
Si, sur un domaine de niveau 2, le serveur de noms de ce domaine connaît l'adresse de cette machine <<au sommet>>, il peut, en interrogeant successivement les serveurs ad hoc, trouver l'adresse IP de n'importe quelle station sur l'Internet, en connaissant un nom.
Concrètement toutes les bases de données, à tous les niveaux, sont dupliquées automatiquement sur plusieurs machines pour que si un serveur de noms est en panne ou est inaccessible un autre puisse répondre.
Sur les stations des utilisateurs, il suffira d'indiquer l'adresse IP du serveur de noms du domaine local (ainsi que des serveurs qui ont la copie de la base). Cela est fait dans le fichier /etc/resolv.conf sur la plupart des Unix, ou dans <<Domain Name Server Information>> dans la configuration de MacTCP. Quand la station aura à résoudre un nom, elle interrogera ce serveur de noms qui saura trouver la réponse.
Les serveurs de noms sont gérés par les administrateurs de réseaux, l'utilisateur n'a qu'à configurer sa station correctement pour pointer vers le bon serveur.
C'est certainement parce que les principes de TCP/IP sont d'abord très simples. Cela a facilité les développements sur différentes plates-formes et les interopérabilités. Un protocole très performant mais complexe demandera beaucoup de mises au point pour fonctionner entre des matériels issus de constructeurs différents.
Ensuite, c'est aussi parce que ce ne sont pas des protocoles conçus par et propriété d'un constructeur informatique particulier. Après avoir beaucoup regretté de s'être laissé enfermer dans le monde de certains grands constructeurs, les responsables informatiques ont vu d'un très bon oeil l'arrivée d'un protocole indépendant et ouvert.
Il n'y a pas d'entité qui contrôle l'ensemble de l'Internet, néanmoins il survit à ce vide.
Mais, la technique TCP/IP décrite plus haut impose quelques entités coordinatrices <<reconnues par la communauté>>. Cette formule est inhabituelle dans un pays très réglementé comme la France, mais elle reflète bien la réalité de l'Internet.
Ces structures officialisent les standards RFCs et délivrent les numéros de <<wellknown port>>, de réseaux IP et les noms de domaines. Elles sont aussi le lieu ou des consensus peuvent s'établir entre les différents protagonistes, en particulier les opérateurs des réseaux qui forment l'Internet. Il faut bien que ces gens-là se rencontrent et se mettent d'accord sur un minimum de choses. En fait, ces entités, dont quelques-unes sont décrites ci-dessous, avec des simplifications, contrôlent la <<technique>>. Ce qui pourrait être vu comme la représentation de la communauté Internet est l'ISOC, l'Internet Society. C'est une société savante à but non lucratif qui a été créée en 1991 pour accompagner l'évolution technique de l'Internet, promouvoir son utilisation dans toutes les communautés (scientifiques, académiques, industrielles...) et aider au développement de nouvelles applications. Elle fournit un forum pour des discussions et des collaborations entre opérateurs et utilisateurs (ces formules sont une traduction des objectifs de l'ISOC, ce qui explique la langue de bois...). Elle édite une revue trimestrielle et tient une conférence annuelle. Elle héberge l'IAB (cf. ci-dessous). Toute personne peut devenir membre de l'ISOC au prix de 70 $ par an.
Le fait que l'ISOC ait été créée très tard, bien après l'expansion de l'Internet, montre bien que ce réseau s'est construit depuis la <<base>> et que ce n'était pas un projet planifié. Ainsi, des structures formelles sont apparues a posteriori, quand le besoin s'en est fait sentir. Il n'est pas exclu que de nouvelles apparaissent...
L'IAB, l'Internet Architecture Board, peut être considéré comme l'autorité suprême. Cela ressemble à un conseil des sages ou des anciens, conseil ou siègent des scientifiques reconnus pour leurs compétences techniques dans le domaine des réseaux informatiques. Volontaires, ils ne sont pas rémunérés pour cette t,che et ont d'autres activités. L'IAB contrôle et impulse les évolutions techniques de l'Internet. Il <<officialise>> les RFCs en cours, encourage la sortie de nouveaux quand cela est nécessaire, et supervise ainsi les travaux de l'IETF et de l'IRTF. Il fixe les règles d'attribution des adresses de réseaux et des noms de domaines. Le président de l'IAB est actuellement un Français, Christian Huitema, directeur de recherche à l'INRIA de Sophia-Antipolis.
L'IETF (Internet Engineering Task Force) veille globalement à la bonne marche du réseau et propose les évolutions techniques, en termes de standards et d'architecture à court ou moyen terme. C'est la principale source de propositions de RFCs (qui sont soumis ensuite à l'IAB). C'est un ensemble de groupes de travail ouverts, les membres étant des experts (souvent des <<gourous>>) qui consacrent une part de leur temps à cette activité. L'IETF se réunit trois fois par an, mais travaille beaucoup entre les réunions par messagerie électronique.
L'IRTF (Internet Research Task Force), moins connu, est une autre structure équivalente à l'IETF mais pour les évolutions à plus long terme. On y fait donc plus de travail théorique et de recherche.
L'IANA (Internet Assigned Numbers Authority) est le bureau chargé de l'enregistrement des numéros de ports (applications), des numéros de réseaux, des noms de domaines et d'autres codes. Devant cette t,che énorme, il délègue l'affectation des numéros de réseaux et des noms de domaines à des opérateurs de réseaux.
En Europe RIPE (Réseaux IP Européens) joue un rôle primordial. C'est le NIC dans les pays européens ou à des opérateurs de réseaux européens. RIPE gère aussi une base de données contenant tous les numéros de réseaux IP et les noms de domaines européens (avec les adresses des sites, des administrateurs...). C'est aussi un lieu d'échange entre les experts IP, opérateurs de réseaux...
En France, une petite structure, hébergée à l'INRIA, assure la fonction de