racine uZine

Dans la même rubrique
Le coin des débutants
7 juillet 2002
28 mars 2002
20 février 2002
13 septembre 2001
11 septembre 2000
 
vendredi 15 septembre 2000

Cékoidonc, Internet ?

par ARNO*

Faire communiquer l’incompatible

Personne n’a l’air de s’étonner de voir dialoguer presque tous les ordinateurs de la planète via internet ; en revanche, personne ne sait encore comment lire une disquette Mac sur un PC ou ouvrir un fichier WordPerfect avec Word. Il est dorénavant admis que toutes les machines communiquent entre elles, sachant qu’elles sont rigoureusement incompatibles les unes avec les autres.

On comprend donc que toute la question, pour réussir à faire communiquer autant d’ordinateurs différents, va être de définir une langue que toutes ces machines comprennent. En matière d’informatique, on nomme cette langue un protocole.

- Les protocoles sont « ajoutés » aux systèmes

Puisqu’il s’agit, pour faire dialoguer plusieurs machines, d’adopter des langages communs, on aurait pu se contenter d’adopter la langue (le système, le fonctionnement...) d’une machine-type, et de l’imposer à toutes les autres. Plutôt que d’avoir des Mac, des PC, des stations, et encore plus de systèmes différents (MacOs, Windows, Unix...), on aurait décidé de toutes les fabriquer rigoureusement de la même façon. Solution impossible (chaque système, chaque machine étaient conçus par des entreprises concurrentes) et dangereux (en gros : ça bloquerait le progrès technologique).

On ne va donc pas adopter la langue de l’un pour l’imposer aux autres. On va au contraire créer une nouvelle langue, pour un usage très précis ; chaque système aura alors la charge de créer un système d’adaptation, qui permette à la machine à la fois de fonctionner avec son système spécifique, et de comprendre la langue commune.

Un protocole, pour internet, n’est donc pas la méthode de travail d’une machine imposée à toutes les autres : c’est un langage supplémentaire, qui n’appartient à personne (ni à aucune machine), adapté à chaque fois pour que chaque système puisse le comprendre.

Voici déjà quelques caractéristiques des protocoles de l’internet : ils ne sont pas propriétaires (ils n’appartiennent à personne, et surtout à aucune entreprise, en propre, mais sont partagés gratuitement par tous) et ils sont ouverts (le protocole est publié gratuitement, accessible à tous, décrit très précisément afin que chacun puisse l’adapter à son propre système sans difficulté). Évidemment, afin que personne ne puisse pervertir ces protocoles à son profit, les protocoles sont établis de manière collégiale : d’où les structures « démocratiques » qui gèrent la définition des protocoles du réseau. À ce stade, on comprend que le principe du « libre » est indissociable de l’existence d’internet.

- À chaque besoin son protocole

Puisque les protocoles sont conçus en supplément des systèmes propres de chaque machine, et qu’ils doivent pouvoir évoluer en accompagnant le progrès technologique, on ne va pas créer, de toute pièce, un seul et unique « gros » protocole qui gérerait tous les besoins à chaque moment. Cela poserait des problèmes d’évolution du système insurmontables.

Au contraire, on va créer un protocole pour chaque besoin spécifique, au fur et à mesure de leur apparition. On a d’abord besoin de faire parvenir une information d’un ordinateur A à un ordinateur B, on définit le principe d’adresse IP (Internet Protocol) ; on veut échanger des petits bouts d’informations (paquets), on définit TCP. On veut échanger des courriers électroniques, on définit l’email : SMTP et POP (depuis, pour de nouveaux besoins, d’autres protocoles sont apparus). On veut échanger des fichiers : le protocole FTP. On veut « télécommander » une machine à distance : Telnet. Des newsgroups répartis sur la planète : NNTP ; des pages avec des liens hypertextes, HTTP ; le format des fichiers échangés via HTTP : le HTML...

La liste est interminable, et ne cesse de s’enrichir. Pour chaque nouveau besoin précis, on définit un nouveau langage commun répondant à ce besoin : on ne bricole pas un « gros » langage qui fait tout, on fabrique un nouveau protocole qui se charge de chaque problème.

De cette façon, chacun peut adopter les protocoles en fonction de ce dont il a besoin, et les protocoles définis à un moment pour un besoin précis n’évoluent pas beaucoup. Un ordinateur qui peut gérer les emails à un moment donné, peut encore gérer les emails dix ans plus tard, sans avoir besoin de suivre « le dernier truc à la mode ».

On voit là que l’internet n’est pas un système unique, un seul gros protocole. C’est un ensemble de protocoles adaptés à chaque besoin. Chez moi, pour échanger des fichiers entre mon Mac et mon PC, j’utilise des protocoles de l’internet (TCP/IP et FTP), mais aucun autre (je n’ai pas besoin de m’envoyer des emails entre les deux extrêmités de ma chambre). Lorsque j’envoie un fichier sur mon site, installé à plus de 6 000 kilomètres de ma chambre, ce sont les mêmes protocoles (TCP/IP et FTP). Lorsque je visite un site Web, d’autres protocoles interviennent alors (HTTP/HTML).

L’internet peut donc se définir comme l’ensemble des protocoles (langues communes) permettant le dialogue entre les ordinateurs. Ces protocoles sont « ajoutés » aux fonctions déjà existantes de chaque machine, à charge pour chaque fabriquant de réussir à faire comprendre à sa machine ce langage commun. De plus, on définit un protocole précis pour répondre à chaque besoin précis.

Les protocoles s’ajoutent les uns aux autres. De deux manières différentes. Soit horizontalement, c’est-à-dire qu’ils effectuent une tâche indépendante des autres protocoles (le Web et le mail effectuent des tâches différentes, et l’un n’est pas utilisé par l’autre... ils sont « au même niveau ») ; soit ils se superposent, c’est-à-dire qu’ils se servent les uns des autres (par exemple : un fichier au format HTML utilise le protocole HTTP, qui circule grâce à TCP/IP).

On parle alors de couches. Les couches qui répondent aux besoins les plus proches de l’informatique représentent le bas niveau ; les couches supérieures sont celles qui gèrent l’information structurée que l’utilisateur humain peut utiliser.

Premier niveau : relier les machines

Avant même de pouvoir échanger des gros fichiers ou la moindre information cohérente, il faut déjà réussir à relier deux ordinateurs. Avant de vous raser à l’étranger, il faut que votre rasoir électrique français fonctionne sur une prise électrique locale. Réussir à adapter une prise mâle à deux fiches dans une prise secteur avec trois trous ; et prier pour que ce soit bien du 220 volts.

En réalité, les concepteurs de l’internet ne se sont pas préoccupés de la manière physique par laquelle les ordinateurs se connectent les uns aux autres. Avec une prise co-axiale (comme votre antenne de télévision), avec une prise téléphonique, avec un câble optique, avec deux trous, trois trous ou par ondes télépathiques. Cet aspect lié à la plomberie de l’ensemble ne compte pas. (On appelle cela la couche physique.)

Chacun est libre de fabriquer, physiquement, son réseau interne comme il l’entend, le problème ne se situe pas à ce niveau. Le but est de faire communiquer des machines déjà incompatibles, autant réussir à ce que des réseaux eux-mêmes incompatibles réussissent à communiquer. Utilisons les réseaux qui existent déjà, et ajoutons une nouvelle langue qui permette aux réseaux de communiquer. Plutôt qu’un seul et unique gros réseau fonctionnant de manière unifiée, connectons des réseaux différents et hétérogènes, grâce à un protocole supplémentaire. Plutôt qu’un réseau, faisons un réseau de réseaux : le protocole définira donc ce qui se passe entre les réseaux (Inter-Networks).

Les deux premiers protocoles qui permettent, de manière très prosaïque, d’envoyer un signal d’un ordinateur à un autre, c’est donc toute la base du réseau : il s’agit de TCP/IP.

Je ne m’étendrai pas, parce que je n’y pige pas grand chose...

Toujours est-il qu’il faut qu’un ordinateur soit identifié d’une manière unique sur le réseau : on lui fixe donc une adresse (un nombre), l’adresse IP. L’ordinateur ayant le numéro 209.21.17.132 est unique, il se situe en Californie, et aucun autre ordinateur n’a le même numéro en même temps que lui sur le réseau. (Ce protocole, dis niveau bas, est le principal constitutif de la couche réseau, car il définit la structure du réseau.)

On serait tenté de faire une analogie avec le numéro de téléphone, mais seul l’unicité du numéro est ici valable. Pour le reste, la communication est totalement différente. Pour le téléphone, la tradition consiste à réserver (physiquement) une ligne entre les deux correspondants : on pourrait suivre le câble qui va de l’un à l’autre (ça n’est plus vrai, mais c’est le principe). On parle alors de commutation de circuits.

Sur l’internet, avec TCP/IP, on utilise un système très différent : on ouvre en permanence des lignes qui relient de nombreux points qui constituent des nœuds de ce réseau. Pour aller du point A à un point B, on va passer par de nombreux points intermédiaires, en empruntant entre ces points des tronçons qui sont autant de lignes ouvertes de manière permanente. Il existe ainsi une multitude de chemins différents pour aller de A à B. Le jeu, ici, va consister à chaque nœud du trajet à décider de la façon optimale de passer au nœud suivant ; l’information va donc suivre un trajet, entre A et B, qui s’adapte en permanence à l’encombrement de chaque tronçon du réseau. Énorme différence philosophique avec le téléphone : le trajet de l’information n’est pas prédéterminé par une entreprise centrale, mais se calcule, automatiquement, en permanence et à chaque nœud, en fonction des tronçons disponibles ; si quelqu’un (une entreprise, une université, un État) créé un nouveau tronçon reliant deux points du réseau, le transit de l’information prend automatiquement en compte cette nouvelle possibilité ; si au contraire on ferme (volontairement, ou à cause d’une panne) un tronçon, l’information empruntera les autres trajets disponibles. Sur la papier, le réseau est donc indestructible et incontrôlable (vous savez, cette histoire de réseau qui résiste à une attaque atomique...) ; dans la pratique, la fermeture d’un tronçon important ou la panne d’un nœud très fréquenté (un ordinateur que l’on nomme un routeur) provoque des embouillages monstres et aboutit souvent au blocage de l’information.

Seconde caractéristique qui différencie le téléphone de l’internet : tout le monde, sur un tronçon, utilise la même ligne ouverte en même temps. Avec le téléphone, la ligne est réservée pendant le temps de la communication entre deux endroits ; sur l’internet, pour éviter qu’un échange ne bloque la ligne pour les autres utilisateurs, on travaille autrement. L’information informatique de chacun est découpée en petits morceaux (des paquets) et ce sont ces paquets qui circulent. Sur un tronçon (sur une ligne entre deux nœuds), ce sont donc de très courts segments de messages qui circulent, les uns après les autres, et non les messages complets ; ainsi, on « intercale » les paquets de différents messages à la queue-leu-leu, ce qui permet à tout ces messages de passer en même temps. À charge pour celui qui reçoit tous les paquets qui constituent un message de les réassembler dans le bon ordre pour obtenir une information cohérente. Revenons au principe précédent : le trajet de l’information n’est pas prédéterminé, mais s’adapte en fonction des disponibilités ; cela est vrai pour chaque paquet. Ainsi, pour l’échange d’un fichier, chacun de ses petits morceaux, de ses paquets, verra son trajet calculé indépendamment les uns des autres (dans les faits, l’état du réseau est stable à chaque moment : ainsi les paquets d’un message envoyés dans un intervalle de temps réduit auront tendance à choisir la même route). Ces deux caractéristiques de TCP/IP constituent ce qu’on nomme la commutation de paquets. Nouvelle caractéristique : alors qu’il est facile d’écouter une conversation téléphonique à n’importe quel endroit de la ligne qui relie les deux communicants, l’information interceptée à un point quelconque de l’internet n’est pas forcément cohérente, puisqu’elle est constituée de paquets désordonnés, et que des paquets nécessaires à cette information peuvent avoir emprunté un autre chemin.

TCP/IP définit donc les premiers protocoles de l’internet. Chaque ordinateur est identifié d’une manière unique ; toutes les lignes sont utilisées par tout le monde (et non pas : une ligne pour chacun) ; les messages sont découpés en petits morceaux afin de permettre à tous de dialoguer en même temps sur la même ligne et le choix du trajet des paquets sur le maillage des réseaux n’est pas prédéterminé.

Deuxième niveau : échanger des fichiers

Puisqu’on peut maintenant envoyer des signaux informatiques d’un point A à un point B, il va falloir définir comment A peut réclamer ces signaux (qui constituent, une fois que les paquets sont réassemblés, des fichiers informatiques) à B.

Si vous demandez, sans autre précaution, « Passe-moi le sel » à un Japonais qui ne comprend que le Swahili, vous pouvez déjà vous considérer au régime sans sel. Une solution : vous apprenez le Swahili parce que votre interlocuteur le comprend. Inconvénient : chaque fois que vous avez un nouveau convive, vous devez apprendre une nouvelle langue. La solution sur l’internet, comme on l’a dit, va être de définir une nouvelle langue commune, un nouveau protocole : ce ne sera ni le français, ni le japonais, ni le swahili, mais une nouvelle langue, définie pour cet usage précis qui consiste à se passer les plats. À charge pour chaque convive d’apprendre, en plus de sa langue natale, cette nouvelle langue.

De plus, pour chaque besoin spécifique, on définit un nouveau protocole. En fonction des besoins des utilisateurs, on va inventer une nouvelle façon de « réclamer » et de « livrer » l’information.

Pour l’échange de fichiers, tout simple, le FTP (très ancien, mais utilisé quotidiennement par la plupart des utilisateurs). Pour une navigation dans des dossiers de fichiers : Gopher. Pour contrôler un ordinateur à distance : Telnet.
Pour envoyer un courrier électronique : le SMTP. Pour recevoir les courriers : le POP. Pour le Web : HTTP. Pour les forums : NNTP. Il en existe des tripotées.

Notez bien, il y a une subtilité : ces protocoles ne définissent généralement pas
la structure des fichiers, ce qu’ils sont, quelle sera leur utilisation ; ils se contentent de définir la façon dont un client va réclamer un fichier à un serveur. Une fois que l’on sait dire « passe-moi le... », ces protocoles se fichent de savoir s’il s’agit de sel ou de poivre. Le but, c’est de savoir comment on demande, en général, et comment on reçoit. (Ces protocoles - et d’autres - constituent la couche applications.)

Résumons. Puisque les ordinateurs savent comment faire parvenir une information d’un point à un autre, il faut qu’ils sachent ce qu’on leur demande, et comment on leur demande. Un serveur ne va pas envoyer tout et n’importe quoi, à n’importe quel moment : il faut qu’un client lui réclame telle chose d’une manière définie précisément, selon un certain protocole.

À ce stade, on voit que l’internet ne propose pas qu’une seule manière d’échanger des informations. On utilise quotidiennement des protocoles de nature très différente, par exemple HTTP (pour le Web) et POP et SMTP (pour l’email). Il n’y a donc pas que le Web sur le réseau. Citons encore des services à la mode : Hotline, Napster et Gnutella ne sont pas des variantes du Web, ils sont des protocoles totalement différents et répondant à des besoins spécifiques ; ils fonctionnent sur l’internet, avec TCP/IP (qui achemine l’information d’un ordinateur à un autre), et la façon par laquelle le client réclame l’information au serveur leur est à chaque fois propre.

Troisième niveau : les formats

Nous touchons au but : les ordinateurs savent envoyer une information d’un point A à un point B, et de plus savent comment on fait pour réclamer un fichier à un serveur. Désormais ce sont bien des fichiers que l’on s’échange, et on sait comment se les faire envoyer. Mais il faut maintenant utiliser ces fichiers.

Or on le sait, non seulement les machines ne fonctionnent pas de la même manière, de plus chaque programme utilise son propre format d’information. Word n’ouvre pas les fichiers de WordPerfect, et Quake ne fonctionne pas avec les fichiers fabriqués dans Excel.

On aurait donc pu se cantonner à échanger des fichiers de deux natures : du texte très simple, que tous les ordinateurs pourraient comprendre, et des fichiers pour lesquels les deux utilisateurs disposent du même programme. L’internet s’est longtemps cantonné à cette utilisation, et n’a ainsi pas touché le grand public.

Le problème est clair : toutes les machines et tous les logiciels utilisent les fichiers de manières différentes et incompatibles. La solution est maintenant connue : définissons de nouvelles langues communes, adaptée à chaque besoin, que chacun pourra comprendre. Hop : de nouveaux protocoles.

Le plus connu aujourd’hui est le HTML. C’est un langage-protocole qui permet de structurer et de décrire un document. Au début, il se bornait à décrire la structure logique du document (« ceci est le titre », « ceci est un paragraphe », « ceci est une citation »...) ainsi que des liens hypertextes. Il a rapidement évolué pour devenir un format décrivant non seulement la structure logique, mais aussi la mise en page (des tableaux, des couleurs, des fonds d’écran...), et intégrer des fichiers multimédias. Le principe, encore une fois : tous les ordinateurs de la planète qui veulent utiliser un fichier HTML se contentent d’adopter ce nouveau protocole, et de s’arranger pour pouvoir le traiter. Tout le monde connaît le fonctionnement du HTML, parce qu’il est public, et sans payer de redevance à qui que ce soit, parce qu’il est non-propriétaire.

À ce niveau, on peut se permettre de confondre « protocole » et format de fichier.
Si l’on veut chipoter, on peut nommer « protocole » un format de fichier ouvert et libre, associé à un protocole défini au paragraphe précédent (par exemple le HTML est lié au protocole HTTP ; le format des messages des newsgroups est lié au format d’échange défini pour cela ; les emails sont liés à POP et SMTP...).

Ainsi, un fichier Word n’est pas un protocole : c’est un format qui appartient à Microsoft, et tout le monde ne peut pas l’utiliser sans payer une redevance. En revanche, JPEG, MPEG, sont des formats-protocoles, car ils sont ouverts à tous gratuitement et adaptables sur toutes les machines.

Conclusion

L’internet n’est pas un ensemble compact et unique, et encore moins un service intégré, offrant de multiples usages commerciaux (comme le câble, par exemple), il n’appartient pas à une entreprise (et n’est pas, lui-même, une entreprise).

L’internet n’est rien d’autre que la définition de protocoles, des langues communes, connues de tous, qui permettent à des ordinateurs d’échanger des informations. On parle de couches, car les protocoles se superposent, depuis le simple fait de relier des ordinateurs et d’échanger des informations informatiques jusqu’à l’échange d’informations structurées et directement utilisables par l’utilisateur.

L’internet n’a donc, en soi, aucune « intention », bonne ou mauvaise. Il ne s’agit jamais que de définir des moyens de relier des ordinateurs entre eux. Le seul intérêt, alors, c’est ce qui est échangé. Et pour cela, Internet est totalement neutre.

Plus loin, les évolutions...

Internet évolue. Tout simplement en adoptant de nouveaux protocoles lorsque des besoins nouveaux apparaissent. Pour de la télévision en ligne, on a besoin de nouveaux protocoles. Pour de la vidéoconférence, également...

Le phénomène est imprévisible, et nul ne peut y voir une « main » invisible. Internet revient, ni plus ni moins, qu’à se mettre d’accord sur des langues communes permettant de répondre à certains besoins. Le désir des politiques de vouloir à tout prix réguler l’internet est idiot : l’internet est déjà, par définition, une régulation, c’est-à-dire la décision humaine de se mettre d’accord pour savoir comment vont se parler les ordinateurs...

En revanche, cela permet de prévoir certains échecs. On peut considérer comme des échecs certains tous les formats pour lesquels il n’existe pas d’accord entre tous les intervenants. Si le besoin existe réellement, alors c’est le format le plus ouvert, le plus « gratuit », le plus libre, qui l’emportera.

Prenons le WAP. Nouveau protocole permettant aux téléphones portables de se connecter au réseau. Si le besoin existe (hum...), si ce format est gratuit, accessible à tous, connu de la même manière par tous les intervenants, alors on peut le considérer comme un protocole et il peut fonctionner. Si en revanche chaque opérateur invente sa propre version du WAP, limitée à certains appareils et ne pouvant consulter que certains portails prédéfinis, on peut déjà dire qu’il ne s’agit pas d’un protocole de l’internet : puisque, par définition, un protocole est une langue commune.

Idem pour un éventuel successeur au MP3. Les maisons de disque veulent imposer un format fermé, propriétaire, connu d’elles seules. Ca n’est alors pas un protocole de l’internet ; et comme il existera forcément un format aussi efficace, mais ouvert, gratuit, libre, c’est celui-là qui fonctionnera.

Le push, présenté abusivement à l’époque comme le nouveau protocole de l’internet, s’est écrasé comme une grosse merde : un format fermé, connu uniquement des quelques entreprises qui l’utilisaient, ne pouvait pas fonctionner.

Bref, impossible de prévoir quels seront les prochains protocoles à long terme. En revanche, tout ce qui ne relève pas, par définition, de la langue commune, c’est-à-dire du protocole, ne relève pas de l’internet. Même une entreprise comme Microsoft n’a pas réussi à « vaincre » cette ouverture que sont les protocoles ouverts du net ; son combat, aujourd’hui, n’est pas d’aller contre le réseau, mais de pervertir ces protocoles en les rendant propriétaires et subtilement incompatibles avec les systèmes non-Microsoft ; un combat qui n’est pas gagné...

Internet, ce sont des protocoles, des langues communes. Ces langues, pour être communes, doivent donc être gratuites, connues de tous, et faciles à adapter sur n’importe quel système existant. Dès qu’un format ou un service s’éloigne de ces critères, il ne peut être considéré comme un procotole ou, pour simplifier, « il ne relève pas de l’internet » ; il n’a donc que peu de chances de s’imposer.

 
 
ARNO*
Imprimer
format impression

Vainqueur 1982 du concours « Chateau de sable » du Club Mickey des Pingouins à Sainte-Cécile.

28 septembre 2003
6 octobre 2003
 
SPIP
Web indépendant


merciiiiiiiiii
21 janvier 2005
 

interessant, instructif, parfois drole...
tres bonne initiative

Merci ARNO

Répondre
Merci, geopardi, 8 mars 2006

Je parvenais pas à faire la différence entre protocole et langage. Maintenant, c’est bon, j’ai capté. Thanks, man

Répondre