Livres et articles indispensables
Si l’Internet est bien l’infrastructure majeure de notre époque, sa création et son essor sont encore l’objet de bien des fantasmes, voire d’erreurs, malgré l’existence d’excellents ouvrages qui les exposent avec clarté. Ici même j’avais rendu compte du livre de Valérie Schafer La France en réseaux (1960-1980), paru en 2012, essentiellement consacré au développement des réseaux en France, mais qui donne suffisamment de détails sur le contexte international. La première synthèse d’envergure était celle d’Arthur Norberg et Judy O’Neill, Transforming Computer Technology (1996), suivie de celle de Katie Hafner et Matthew Lyon Where Wizards Stay Up Late — The Origins of the Internet (1996). Il faut lire aussi l’article d’Alexander McKenzie (2011) INWG and the Conception of the Internet : An Eyewitness Account, sans oublier le livre de Peter H. Salus Casting the Net (1995).
La lecture du livre de Janet Abbate Inventing the Internet (Inside Technology), un peu plus récent (1999, MIT Press) que celui de Katie Hafner et Matthew Lyon, est également indispensable à quiconque s’intéresse au sujet. Les livres et articles mentionnés ici sont complémentaires, même s’ils se recoupent bien sûr assez souvent. Plutôt que de tenter un résumé de ce dernier, qui répéterait en grande partie mon article déjà cité, je vais essayer de l’utiliser pour clarifier quelques points qui devraient être bien connus mais dont quelques conversations récentes m’ont montré qu’ils étaient assez ignorés, même de certains acteurs.
Réseaux de transmission par paquets
Les réseaux de données modernes utilisent la transmission par paquets. Les données, si elles ne sont pas intrinsèquement numériques (cas de la voix ou des images), sont d’abord codées sous forme numérique, puis le flux de données est découpé en paquets de petite taille, typiquement quelques milliers de caractères.
Chaque paquet est muni d’un en-tête qui contient des informations utiles à son acheminement, typiquement l’identification des points d’émission et de destination des données, éventuellement un numéro d’ordre et des codes redondants pour en vérifier l’intégrité. Le fait que chaque paquet soit accompagné de ces informations, appelées aussi métadonnées, permet de l’acheminer indépendamment des autres paquets du flux, ce qui est utile pour la détection et la correction des erreurs de transmission, ainsi que pour adapter le débit d’émission de données à la capacité de réception du destinataire.
La transmission par paquets procure un moyen élégant de multiplexage de données : si deux transmissions indépendantes utilisent sur une partie de leurs itinéraires respectifs un tronçon commun, on peut sans inconvénient mélanger leurs paquets au fur et à mesure de leur arrivée, puisque les adresses de destination permettront de faire le tri à la sortie de ce tronçon et d’envoyer chaque paquet vers la bonne destination. Cette opération de tri et d’aiguillage se nomme le routage, et elle est effectuée par des ordinateurs spécialisés nommés routeurs [1].
Les réseaux de transmission par paquets permettent aussi d’imaginer qu’en cas de coupure accidentelle d’une liaison quelque part dans le réseau les paquets puissent être ré-acheminés (re-routés) par un autre itinéraire, à condition qu’existe dans le réseau une certaine redondance de liaisons.
La transmission de données par paquets sur un réseau a été inventée indépendamment par Paul Baran de la Rand Corporation (un organisme de recherche à but non lucratif sous contrat avec le Département de la Défense américain), par Leonard Kleinrock de l’université Stanford et par Donald Davies du National Physical Laboratory britannique, au début des années 1960. On se reportera au livre de Janet Abbate pour une discussion des questions d’antériorité.
Lawrence Roberts, à l’origine (à la suite de Robert Taylor) du réseau ARPANET, créé en 1969 par la firme Bolt, Beranek & Newman (BBN) pour l’Advanced Research Projects Agency (ARPA) du Département de la Défense américain, avait eu connaissance des techniques de transmission par paquets en rencontrant Roger Scantlebury, un collaborateur de Donald Davies, lors d’une conférence sur les réseaux à Gatlinburg, Tennessee, en octobre 1967. Convaincu par l’idée, il allait la mettre en œuvre dans ARPANET. Si ARPANET était bien une émanation du Département de la Défense, son usage n’était pas militaire, mais destiné au partage de moyens de calcul entre laboratoires de recherche, le plus souvent universitaires, sous contrat avec l’ARPA. Janet Abbate décrit de façon nuancée les équilibres délicats entre administrateurs militaires et chercheurs d’esprit plutôt anarchiste, ce en pleine période de guerre du Viêt-Nam.
Commutation de circuits
Dans les réseaux de télécommunication anciens, l’établissement d’une communication consistait à établir un circuit physique continu (en cuivre) entre les deux extrémités. Le circuit ainsi établi était physiquement réservé à la communication en cours. Puis furent inventées des techniques de multiplexage destinées à permettre le partage de liaisons physiques entre plusieurs communications : le multiplexage de fréquence partageait le spectre disponible en plages de fréquences attribuées chacune à une communication, le multiplexage temporel leur attribuait des intervalles de temps successifs.
Comme mentionné plus haut, la transmission par paquets permettait un multiplexage plus souple et plus efficace, grâce à la présence dans chaque paquet de l’adresse de destination, qui permettait de mélanger des paquets de diverses communications sans contraintes particulières, dans la limite du débit maximum de chaque tronçon de réseau emprunté.
Les premiers réseaux de paquets fonctionnaient selon un principe de circuits virtuels : pour une transmission donnée, les ordinateurs de commande du réseau, que l’on n’appelait pas encore des routeurs, calculaient un itinéraire, et tous les paquets de ce flux empruntaient cet itinéraire. La technique des circuits virtuels plaçait les opérations de calcul d’itinéraire et de contrôle d’acheminement au cœur du réseau, dans ses systèmes de supervision qui effectuaient l’aiguillage (la commutation) des flux de données.
Le réseau ARPANET, le réseau du National Physical Laboratory britannique, ainsi que les réseaux X25 comme le réseau français Transpac, étaient des réseaux à commutation de circuits virtuels.
1972 : tempêtes sous les crânes
1972 est une année charnière dans le monde des réseaux. Vinton Cerf et Robert Kahn étaient les chefs de file du développement d’ARPANET, qui reliait 29 nœuds. L’IRIA français, ancêtre d’Inria, avait lancé le réseau Cyclades sous la direction de Louis Pouzin. Le National Physical Laboratory britannique avait un réseau conçu par Donald Davies. Les PTT de plusieurs pays européens (dont la France) avaient aussi des projets de réseaux.
En octobre 1972 tous ces groupes se réunirent à Washington pour la première Conférence internationale sur les communications informatiques, avec l’idée, entre autres, d’interconnecter leurs réseaux. Cette réunion fut le lieu d’intenses échanges d’idées et d’expériences, à l’origine de la conception par Cerf et Kahn du protocole TCP [2] en 1974 (la couche réseau n’apparaîtra comme un protocole distinct de TCP sous le nom d’IP [3] qu’en 1978), et aussi du modèle OSI [4] en sept couches publié par un article fameux [5] d’Hubert Zimmermann (1941-2012). Un des enjeux débattus était la possibilité d’interconnecter des réseaux différents, ce qui allait mener à l’idée d’Internet.
Je traduis le passage de Janet Abbate qui commente la contribution de l’équipe Cyclades à cette conférence (p. 171 de l’édition électronique) : « Cyclades était un projet de réseau expérimental lancé en 1972 avec un financement du gouvernement français. Ses architectes, Louis Pouzin et Hubert Zimmermann, avaient des idées très tranchées sur l’interconnexion de réseaux [(internetworking)]. En fait, Cyclades, à la différence d’ARPANET, avait été conçu explicitement pour permettre l’interconnexion ; il pouvait, par exemple, traiter des adresses de formats différents et des niveaux de service variés [6].
Cyclades était basé sur un système très simple de commutation de paquets. Plutôt que de confier au réseau la tâche de maintenir une connexion stable entre deux extrémités [hosts, hôtes], à la façon d’ARPANET, Cyclades émettait simplement des paquets individuels (sous le nom de « datagrammes »). L’argument de Pouzin et Zimmermann était que plus les fonctions du réseau resteraient simples, plus la construction d’un internet serait facile. Selon Pouzin [7], “plus un réseau sera perfectionné, moins il sera facile de l’interfacer correctement avec un autre. En particulier, toute fonction autre que l’émission de paquets sera selon toute probabilité trop spécifique pour communiquer correctement avec un voisin.” Afin de cantonner les fonctions du réseau au strict minimum, les chercheurs français soutenaient qu’il était nécessaire d’attribuer la responsabilité de maintenir des connexions stables au protocole d’extrémité [hôte]. Cela allait à l’encontre à la fois de la façon dont BBN avait conçu l’ARPANET et de celle dont les opérateurs de télécommunications en France et ailleurs prévoyaient de construire leurs réseaux publics de données. Sans doute en prévision d’une opposition à leur approche non conventionnelle, les membres du groupe Cyclades défendaient leur philosophie d’interconnexion avec une extrême vigueur. Pouzin et Zimmermann étaient actifs au sein de l’INWG (International Packet Network Working Group). Un autre membre de l’équipe Cyclades, Gérard Le Lann, travaillait dans le labo de Cerf à Stanford, où il avait la possibilité de participer directement à la conception du système internet de l’ARPA. Selon Cerf [8], le groupe Cyclades “contribuait beaucoup aux premières discussions pour savoir à quoi ressemblerait le [protocole d’extrémité].” »
Commutation de paquets
L’émission de datagrammes indépendants les uns des autres, simplement munis de leurs adresses d’émission et de destination, invention de Louis Pouzin mise en œuvre par l’Internet, laisse à chaque routeur la décision de la prochaine étape dans le réseau. Les différents datagrammes d’une même transmission peuvent emprunter des itinéraires différents et arriver à destination dans le désordre. On laisse à la charge du protocole d’extrémité (par exemple TCP) le soin de vérifier qu’ils sont tous arrivés, sans erreur, et de les mettre dans le bon ordre. C’est une différence essentielle avec les protocoles dits « connectés », tels que X25.
L’Internet est de toute évidence une œuvre collective, il n’y a pas un unique inventeur de l’Internet, mais il n’y en a pas non plus une multitude. Ce qui ressort de la lecture d’historiennes spécialistes du domaine comme Janet Abbate et Valérie Schafer ou d’acteurs de ces événements comme Vinton Cerf, Robert Kahn et Alexandre McKenzie, c’est que si Cerf et Kahn furent bien les maîtres d’œuvre de la transition d’ARPANET à l’Internet que nous connaissons et de la réalisation de TCP puis d’IP, l’invention du datagramme, qui allait à contre-courant de tous les projets et de toutes les réalisations de l’époque, et qui a joué un rôle déterminant dans la constitution du réseau tel que nous le connaissons, est bien le fait de l’équipe Cyclades dirigée par Louis Pouzin.
Louis Pouzin avait eu une autre idée, malheureusement non retenue à l’époque. L’adresse IP d’un nœud du réseau sert à la fois à l’identifier et à le localiser. Pouzin avait suggéré de séparer ces deux fonctions, mais Cerf et Kahn avaient trop avancé dans la voie qu’ils s’étaient fixée et n’ont pas voulu revenir en arrière. Cette confusion des fonctions d’identification et de localisation a de nombreux inconvénients, notamment pour la sécurité du réseau, surtout depuis la généralisation des mobiles (quand un nœud se déplace, il change d’adresse, donc d’identité), et pour la contourner les opérateurs du réseau sont contraints à d’inélégantes gymnastiques.
Le datagramme allait permettre de s’affranchir d’une gestion lourde du réseau, au profit d’un réseau plus simple et du report de la complexité dans les protocoles d’extrémité (par exemple TCP). Cette simplification a permis l’extraordinaire croissance de l’Internet, sans avoir à remettre fondamentalement en cause l’architecture de la couche réseau (IP). D’autre part, c’est le fait de réserver aux protocoles d’extrémité la plus grande partie de la complexité qui a permis le développement sur le réseau de multiples protocoles spécialisés, et ce, encore une fois, sans remise en cause de l’architecture générale. C’est en cela que le datagramme est une invention extraordinaire, qui a permis le succès non moins extraordinaire de l’Internet, et dont nous sommes redevables à l’équipe Cyclades dirigée par Louis Pouzin.