Résumé

  • L’Interface Message Processor d’ARPANET était une infrastructure commune riche en fonctions : commutation de paquets, segmentation, réassemblage, contrôle d’erreurs, mesure, traçage et mécanismes de régulation. Mais les premiers RFC montrent simultanément que cette infrastructure ne pouvait pas, à elle seule, assurer la correction complète de la communication : les hôtes devaient maintenir des états, gérer des buffers, interpréter des statuts et coopérer avec le réseau.
  • L’autorité de BBN était réelle mais bornée. Elle provenait d’un contrat ARPA, d’une machine effectivement livrée et exploitée, et d’une interface que les équipes hôtes devaient respecter. Elle ne constituait pas un mandat permanent sur les logiciels des hôtes, les applications ou les futurs réseaux indépendants.
  • Lorsque l’Internet passa d’un réseau fiable unique à l’interconnexion de réseaux hétérogènes, une partie de la responsabilité se déplaça vers les extrémités : non parce que l’infrastructure devenait inutile, mais parce que certaines garanties ne pouvaient être complètes qu’au lieu où existait l’information nécessaire pour les vérifier.

Au commencement d’ARPANET, le problème n’était pas de savoir qui gouvernerait un Internet mondial. Il fallait d’abord faire fonctionner quatre machines lointaines, hétérogènes et coûteuses, puis davantage, sans imposer à chaque centre de calcul de devenir expert en commutation de paquets.

Cette différence d’échelle compte. Nous lisons souvent les premières années d’ARPANET en remontant le temps depuis l’Internet actuel. L’IMP devient alors un « premier routeur », BBN une sorte de fournisseur historique d’équipement réseau, NCP une version imparfaite de TCP/IP et les RFC une constitution embryonnaire. Ces raccourcis ont l’avantage de la simplicité. Ils ont le défaut de déformer exactement ce qui rend cette période intéressante.

L’Interface Message Processor n’était pas un routeur IP primitif, puisque IP n’existait pas encore. Il n’était pas non plus un simple tuyau. Il exécutait une part substantielle du travail de réseau.

Et les premiers documents techniques ne décrivaient pas un partage abstrait entre « cœur » et « périphérie » au sens où nous employons aujourd’hui ces mots. Ils décrivaient quelque chose de plus concret : une frontière de responsabilité entre un sous-réseau de commutation fourni par un contractant et des hôtes dont les équipes devaient encore inventer la manière de communiquer entre elles.

Cette frontière est l’un des endroits où l’histoire technique rejoint l’économie institutionnelle. Une fonction mise en commun peut réduire la duplication, normaliser un service et accélérer le déploiement. Mais elle concentre aussi de l’état, des hypothèses et du pouvoir d’exécution. Plus le système commun sait de choses spécifiques à ses utilisateurs, plus sa panne, son remplacement ou son changement de politique deviennent coûteux.

L’histoire de l’IMP ne démontre pas que toute fonction doit vivre aux extrémités. Elle montre presque l’inverse : une infrastructure partagée peut accomplir énormément et rester indispensable. Ce que cette histoire expose, c’est la question du placement.

Quelle fonction doit être commune ? Quelle fonction peut être complète dans le réseau ? Quelle fonction a nécessairement besoin d’une connaissance détenue uniquement par les hôtes ou les applications ? Et jusqu’où l’autorité de l’acteur qui construit le mécanisme commun doit-elle s’étendre ?

Ces questions apparaissent dès les premiers RFC, bien avant que l’argument « end-to-end » reçoive sa formulation classique.

Un sous-réseau distinct plutôt qu’un réseau fabriqué par chaque hôte

L’innovation organisationnelle d’ARPANET ne consistait pas seulement à employer la commutation de paquets. Elle consistait à séparer le service de communication d’une grande partie de la diversité des ordinateurs raccordés.

Les hôtes universitaires et de recherche n’étaient pas des machines uniformes. Chacun avait son système, ses conventions et ses priorités. Construire un réseau en demandant à chacun d’implémenter lui-même le transport entre sites aurait multiplié les zones de désaccord. ARPANET introduisit au contraire un sous-réseau de machines spécialisées : les Interface Message Processors.

Les sources permettent d’être plus affirmatif sur le résultat de cette décision que sur toutes les intentions précises qui l’avaient motivée. Les premiers documents conservés ne constituent pas le procès-verbal complet de chaque arbitrage d’ARPA.

Ils montrent toutefois clairement l’effet architectural obtenu : les fonctions de commutation pouvaient être construites, testées et livrées sous une forme commune, pendant que les groupes disposant des hôtes restaient responsables d’une autre couche de logiciel.

RFC 1 le dit avec une franchise remarquable. Le logiciel du réseau ARPA se trouve en partie dans les IMP et en partie dans les hôtes. BBN spécifie la partie IMP ; les groupes hôtes doivent s’entendre sur leur propre logiciel.

Cette phrase ne décrit pas seulement une pile technique. Elle dessine une frontière d’organisation.

D’un côté, il existe un contractant avec un périmètre d’exécution identifiable. De l’autre, une pluralité de sites dont les décisions ne peuvent pas être entièrement absorbées dans le contrat de ce fournisseur. Entre les deux, une interface devient l’instrument de coordination.

Dans l’histoire ultérieure de l’Internet, les interfaces ouvertes prendront une importance presque constitutionnelle. Mais il serait anachronique de présenter l’interface Host–IMP de 1969 comme l’expression consciente d’une doctrine mature d’Internet ouvert. À ce moment-là, l’enjeu est plus immédiat : une machine doit pouvoir se raccorder à une infrastructure de commutation sans avoir à en réécrire les mécanismes internes.

C’est déjà considérable.

Une bonne interface transforme en effet une dépendance organisationnelle en dépendance fonctionnelle plus précise. L’utilisateur de l’IMP n’a pas besoin de connaître la totalité du code du sous-réseau. Il doit savoir quelles données présenter, sous quelle forme, et comment interpréter les réponses. Le fournisseur du sous-réseau n’a pas besoin de contrôler l’application entière. Il doit respecter les propriétés du service exposé.

Cette séparation rend possible un partage du travail. Elle ne supprime pas les interdépendances.

Ce que BBN avait réellement livré

Le danger, en décrivant une frontière, est de faire croire que le côté « infrastructure » était minimal. Il ne l’était pas.

BBN avait remporté en 1968 le contrat lié à la construction du sous-réseau ARPANET et transforma notamment une machine Honeywell 516 en IMP. Cette réalisation matérielle et logicielle ne relevait pas d’une simple spécification de papier. Le sous-réseau devait fonctionner physiquement, survivre aux pannes, être débogué à distance, être rechargé et continuer à assurer un service sur des lignes imparfaites.

Les souvenirs de Frank Heart insistent sur cette matérialité opérationnelle. La fiabilité, le débogage, le rechargement du logiciel et la capacité à gérer les lignes faisaient partie du problème réel. Ce n’était pas une architecture construite dans l’abstraction d’un diagramme : c’était un service exploité avec des ordinateurs, des lignes de communication et des défauts qui devaient être observés.

RFC 1 permet de voir la densité du travail réalisé dans l’IMP.

Les messages pouvaient atteindre 8 080 bits. Ils étaient divisés en paquets d’au plus 1 010 bits. Un contrôle cyclique de 24 bits participait à la détection d’erreurs. Les paquets circulaient entre IMP, puis le message était réassemblé au niveau de l’IMP de destination. Le système comprenait également des liens logiques, des possibilités de traçage et le mécanisme Request for Next Message, RFNM, qui intervenait dans la régulation de l’émission.

Ce vocabulaire suffit à contredire une lecture rétrospective trop simple d’un « cœur stupide ».

Le sous-réseau connaissait les messages, les paquets, les liens et une partie de la progression des communications. Il pouvait participer activement à la fiabilité. Il manipulait de l’état et imposait une discipline aux échanges.

Même le terme de « paquet » ne doit pas nous faire confondre les architectures. L’IMP d’ARPANET opérait dans le cadre d’un réseau déterminé, avec ses propres mécanismes, avant la séparation ultérieure entre IP, TCP et les multiples réseaux sous-jacents. Lui appliquer sans réserve la catégorie de « routeur moderne » masque donc les fonctions qu’il exécutait et l’environnement institutionnel dans lequel il avait été conçu.

L’IMP était un paquet de responsabilités, au sens presque littéral : un ensemble défini de fonctions techniques confiées à une machine commune.

La frontière n’était pas une délégation totale

Si BBN pouvait construire le sous-réseau, les hôtes restaient loin d’être passifs.

RFC 7 décrit le traitement de l’interface Host–IMP, le multiplexage et la gestion de buffers. RFC 2 montre que le logiciel des hôtes devait entretenir de l’état sur les liens, exécuter ses propres vérifications, manipuler des accusés de réception et traiter des informations relatives à la disponibilité des hôtes distants.

Autrement dit, l’existence d’un sous-réseau relativement riche ne supprimait pas les machines des extrémités de la boucle de correction.

C’est ici qu’une lecture attentive des premiers RFC devient précieuse. Les documents ne proposent pas une théorie philosophique du rôle de l’hôte. Ils montrent les endroits où l’architecture bute contre la réalité.

Un exemple apparaît dans RFC 1 à propos des liens logiques et de la congestion. Le mécanisme du réseau pouvait limiter certaines formes de surcharge. Pourtant l’IMP de destination ne disposait pas d’une capacité illimitée pour traiter simultanément tous les liens possibles. La coopération des hôtes restait donc nécessaire.

Ce détail technique est plus important qu’il n’en a l’air.

Le réseau commun peut avoir une politique de flux. Il peut posséder un mécanisme de régulation. Il peut connaître certaines ressources. Mais s’il ne connaît pas toutes les contraintes situées au-dessus de lui, il ne peut transformer à lui seul une amélioration locale en garantie universelle.

L’infrastructure peut empêcher un certain désordre. Elle ne peut pas toujours savoir ce que l’application considère comme un résultat correct.

À l’époque, personne n’avait besoin de formuler cette limite dans le vocabulaire du futur article de Saltzer, Reed et Clark. Elle était déjà observable comme limite pratique.

L’interface comme contrat d’exécution

Il est tentant de parler ici d’« autorité » au sens juridique ou politique. Le terme doit être manié avec discipline.

BBN disposait d’un pouvoir concret. L’entreprise avait gagné un contrat. Elle construisait les IMP. Son logiciel devait être présent dans ces machines. Les équipes hôtes travaillaient contre une échéance de livraison du matériel et devaient préparer leurs interfaces et leurs logiciels pour se connecter.

Steve Crocker, dans sa rétrospective, rappelle notamment l’arrivée attendue du premier IMP à UCLA en septembre 1969 et le travail nécessaire du côté des équipes hôtes.

Le calendrier de livraison créait donc une forme d’autorité par le fait.

Lorsqu’une équipe construit l’équipement que tous doivent raccorder, ce qu’elle implémente devient une réalité avec laquelle les autres doivent composer. Une spécification accompagnée d’un appareil qui arrive sur site possède un poids différent d’une recommandation sans déploiement.

C’est ce que l’on peut appeler une autorité exécutable.

Elle ne vient pas seulement du nom du contractant. Elle vient du fait que le système tourne.

Mais il faut distinguer quatre choses qui sont facilement confondues.

La première est le pouvoir d’achat public. ARPA pouvait attribuer un contrat, fixer des objectifs et engager des ressources.

La deuxième est la mise en œuvre livrée. BBN transformait cette commande en machines et en logiciel effectivement utilisés.

La troisième est l’autorité de l’interface. Les hôtes devaient respecter certaines conditions s’ils voulaient communiquer correctement avec le sous-réseau.

La quatrième serait un mandat architectural général : le droit durable de décider comment toutes les applications, tous les hôtes ou tous les réseaux futurs doivent se comporter.

Les sources établissent les trois premières bien plus sûrement que la quatrième.

C’est précisément pourquoi l’histoire ne doit pas être transformée en récit institutionnel grandiose. Rien dans le dossier disponible ne justifie de conclure que le contrat de BBN constituait un titre permanent sur l’évolution de la communication numérique.

L’autorité suivait la fonction réellement fournie.

Cette distinction est essentielle aujourd’hui, car les systèmes techniques produisent facilement un glissement de langage. Celui qui fournit une fonction devient administrateur. L’administrateur devient coordinateur. Le coordinateur devient arbitre. Puis l’on suppose que l’arbitrage découle naturellement du fait d’avoir autrefois fourni le service.

L’histoire de l’IMP ne démontre pas que ce glissement s’est produit à l’époque. Elle donne plutôt un moyen de voir pourquoi il n’est pas nécessaire.

La puissance et la limite d’un réseau fiable

ARPANET avait été conçu comme un réseau dans lequel une part importante de la fiabilité pouvait être prise en charge par le sous-réseau.

Cette propriété rendait rationnelle une partie du modèle NCP. Tant que l’univers à relier était ARPANET, un hôte pouvait s’appuyer sur les mécanismes du réseau auquel il appartenait. L’adresse visait un IMP de destination ; le système n’avait pas encore besoin d’identifier et d’articuler plusieurs réseaux autonomes de technologies différentes.

Cette hypothèse est facile à sous-estimer parce que la fiabilité est une qualité désirable. Pourquoi la déplacer vers les extrémités si le réseau peut l’assurer ?

La réponse ne tient pas à une aversion de principe pour les réseaux fiables. Elle apparaît lorsque l’objet change.

Une architecture conçue pour une infrastructure homogène peut utiliser des garanties que cette infrastructure sait fournir. Une architecture d’interconnexion doit fonctionner lorsque les réseaux qu’elle relie ne fournissent pas les mêmes garanties.

Les expériences et les développements autour des réseaux radio, satellite et d’autres réseaux indépendants firent apparaître ce problème. Un mécanisme de transport supposant qu’un seul réseau sous-jacent fournisse la fiabilité n’était pas automatiquement transposable à un système dans lequel les paquets devaient traverser plusieurs infrastructures conçues séparément.

Le cœur de l’évolution vers l’Internet n’est donc pas que les ingénieurs auraient découvert soudainement que la fiabilité du réseau était une mauvaise idée.

Ils découvrirent qu’une garantie n’est pas réellement commune si elle dépend d’une propriété que chaque réseau participant n’est pas tenu de partager.

C’est un problème d’interopérabilité, mais aussi un problème de dépendance.

Une fonction commune est économique lorsqu’elle élimine une duplication sans imposer une hypothèse trop forte. Elle devient coûteuse lorsqu’elle oblige tous les participants à adopter une forme d’infrastructure qu’ils ne peuvent ou ne veulent pas reproduire.

La transition vers l’interconnexion ouverte obligeait à revoir ce calcul.

L’Internet ne pouvait pas demander à tous les réseaux de devenir ARPANET

L’architecture ouverte de l’Internet repose sur une idée qui, rétrospectivement, semble évidente : chaque réseau doit pouvoir continuer à fonctionner selon sa propre conception interne.

C’était pourtant une rupture importante.

L’objectif n’était plus d’agrandir indéfiniment un seul réseau en imposant partout le même modèle de service. Il fallait relier des réseaux distincts sans exiger qu’ils deviennent des copies les uns des autres.

Cette exigence modifiait la fonction du dispositif intermédiaire.

Les passerelles devaient rester relativement simples, agir comme des « boîtes noires » pour la diversité interne des réseaux et éviter de dépendre d’un état complexe propre à chaque communication de bout en bout. La retransmission devait pouvoir repartir de la source lorsque des données étaient perdues.

Le système commun s’orientait vers une logique de meilleur effort.

Il serait encore une fois erroné d’interpréter ce mouvement comme une suppression de la sophistication dans le réseau. Les réseaux continuent à avoir besoin de routage, de mesure, de files, de diagnostics, de mécanismes de sécurité et de nombreuses autres formes d’état.

La réduction porte sur le type de promesse que la couche commune tente de rendre universelle.

La question n’est plus : « Le réseau peut-il rendre cette fonction utile ? »

Elle devient : « Peut-il rendre cette fonction complètement correcte, quelles que soient les propriétés des réseaux et des applications situés aux extrémités ? »

C’est une question beaucoup plus exigeante.

De NCP au programme de contrôle de transmission

RFC 675, publié en décembre 1974, documente une étape ancienne du programme de contrôle de transmission de l’Internet.

Il faut résister à la tentation d’aplatir la période comprise entre l’IMP d’ARPANET et le TCP/IP mature. Le passage n’est ni instantané ni conceptuellement simple. Il se construit à travers des expérimentations, des versions de protocoles et une réflexion croissante sur ce qui doit être conservé à l’échelle de l’interconnexion.

Ce qui importe pour la frontière IMP est le déplacement de la dépendance.

Dans le modèle ARPANET, le logiciel hôte pouvait s’appuyer sur un réseau déterminé dont les IMP faisaient un travail considérable de fiabilité et de régulation.

Dans l’Internet émergent, le système de transport devait survivre à des réseaux pouvant perdre des paquets, varier dans leur comportement ou ne partager qu’un service datagramme minimal.

Les extrémités devenaient alors le lieu naturel de certaines récupérations.

Ce mot, « naturel », ne doit pas être compris comme une loi physique. Il signifie : le lieu où existe l’information suffisante pour décider qu’un résultat final est correct.

Une passerelle intermédiaire peut retransmettre quelque chose. Elle peut optimiser. Elle peut réduire un taux d’erreur local. Mais si seule l’application sait quel objet devait être livré, si seul l’hôte final peut vérifier que les données ont atteint la bonne destination dans le bon état, la vérification définitive ne peut être déléguée totalement à l’intermédiaire.

C’est exactement le genre de distinction que la théorie end-to-end rendra ensuite explicite.

L’argument de bout en bout n’interdit pas les fonctions dans le réseau

La formulation classique de Saltzer, Reed et Clark est souvent réduite à un slogan : mettre l’intelligence aux extrémités.

Cette réduction est trompeuse.

Leur argument porte sur la complétude.

Une fonction dont la correction dépend de connaissances détenues par l’application ne peut être complètement et correctement implémentée qu’avec la participation des extrémités concernées. Une version de cette fonction située plus bas dans le réseau peut néanmoins rester utile.

Elle peut accélérer la transmission.

Elle peut réduire le nombre de pertes.

Elle peut diminuer la charge.

Elle peut fournir une défense supplémentaire.

Elle peut rendre le cas courant plus performant.

Ce qu’elle ne peut pas faire, c’est rendre superflu le contrôle final là où se trouve l’information déterminante.

Cette nuance éclaire rétrospectivement l’IMP sans transformer les ingénieurs de 1969 en disciples d’une doctrine publiée plus tard.

L’IMP exécutait des fonctions substantielles, et cette richesse était rationnelle dans son contexte. En même temps, les RFC exposaient déjà la nécessité de la coopération des hôtes. L’histoire ne montre donc ni un triomphe initial du « réseau intelligent » ni une conversion morale ultérieure au « réseau stupide ».

Elle montre un apprentissage sur la portée des garanties.

RFC 3439 prolongera plus tard cette réflexion dans le vocabulaire de la simplicité, de la complexité et de la couche IP minimale. Mais là encore, un cœur minimal n’est pas un cœur sans état. Les tables de routage, par exemple, peuvent être considérables. L’essentiel est que cet état reste lié aux fonctions que le cœur doit réellement accomplir.

La frontière fonctionnelle devient une frontière économique

Pourquoi cette histoire mérite-t-elle l’attention d’un dirigeant d’infrastructure plutôt que seulement celle d’un historien des réseaux ?

Parce que le placement des fonctions détermine le placement du risque.

Supposons qu’une capacité soit intégrée dans une couche commune utilisée par tous.

Au départ, l’économie est attractive. Les opérateurs évitent de développer plusieurs fois la même chose. Les utilisateurs obtiennent une propriété uniforme. Un fournisseur spécialisé peut investir davantage dans la fiabilité qu’une multitude de petits participants.

Mais le calcul possède un envers.

Si cette fonction contient progressivement de l’état propre aux applications, des identités, des règles commerciales ou des politiques d’accès, les participants deviennent dépendants d’une interprétation commune qui dépasse la simple transmission.

Le coût de changement augmente.

Le remplacement du fournisseur devient plus difficile.

Une panne locale produit des effets plus larges.

Une divergence de politique peut devenir une divergence opérationnelle.

Une fonction qui avait été mutualisée pour gagner en efficacité peut devenir le lieu où un acteur détermine qui peut continuer à opérer.

L’IMP est précieux comme cas historique parce que ses frontières sont relativement visibles.

BBN construit le sous-réseau.

Les groupes hôtes construisent leur logiciel.

L’interface précise la zone de rencontre.

Le contractant possède une autorité réelle sur le mécanisme qu’il fournit.

Il n’en découle pas automatiquement qu’il détient les décisions qui requièrent les connaissances propres aux hôtes.

Ce principe de proportionnalité entre fonction et autorité est plus difficile à préserver dans les infrastructures contemporaines, où le même intermédiaire peut offrir transport, sécurité, identité, observabilité, filtrage, gestion des certificats et contrôle d’accès.

L’intégration technique tend à produire une intégration institutionnelle.

Quand l’aide devient dépendance

Un intermédiaire rend souvent service avant de devenir un point de contrôle.

C’est même ce qui rend la concentration rationnelle.

Une fonction est intégrée parce qu’elle améliore la fiabilité. Puis elle est étendue parce que tous les clients sont déjà raccordés. Ensuite elle reçoit davantage d’état parce que celui-ci permet une meilleure optimisation. Enfin, cette position privilégiée est utilisée pour appliquer une politique qui n’était pas nécessaire au mécanisme initial.

Aucune étape prise isolément ne paraît extravagante.

Le résultat peut pourtant être une architecture dans laquelle la sortie devient difficile.

La bonne question n’est donc pas : « Cette fonction est-elle utile dans l’infrastructure ? »

La bonne question est double.

Premièrement : la fonction exige-t-elle d’être commune pour préserver une propriété commune ?

Deuxièmement : si elle est placée dans la couche partagée, les extrémités restent-elles capables de vérifier indépendamment le résultat, de changer de fournisseur ou de poursuivre leur fonctionnement ?

L’histoire de l’IMP donne un exemple ancien d’une réponse nuancée.

La segmentation en paquets et le réassemblage dans le cadre d’ARPANET pouvaient rationnellement être pris en charge par les IMP.

La correction de tous les comportements des hôtes ne pouvait pas l’être.

La gestion d’un flux pouvait être aidée par l’infrastructure.

Elle dépendait encore de la coopération des systèmes terminaux.

Une interface commune pouvait être obligatoire pour se connecter à l’IMP.

Elle ne transformait pas le constructeur de l’IMP en auteur de toutes les applications.

Le mandat ne doit pas dépasser l’interface

L’observation des implémentations en service impose ici une discipline utile, sans constituer par elle-même une preuve historique.

Les faits de 1969 viennent des RFC, du contrat, des archives et des témoignages. Ces éléments permettent ensuite d’en interroger la portée.

Son apport essentiel est de demander : qu’est-ce qui était effectivement nécessaire pour que le système fonctionne ?

Dans le cas de l’IMP, la réponse inclut beaucoup de choses : machine, logiciel de commutation, interface, mécanismes de contrôle, opérations, diagnostics et coordination avec les hôtes.

Ce n’était pas minimal au sens de « peu de code ».

C’était borné au sens de « fonction identifiable ».

Cette distinction est capitale.

Une couche commune peut être technologiquement complexe tout en restant institutionnellement étroite. À l’inverse, un mécanisme techniquement trivial peut devenir institutionnellement très large s’il possède le pouvoir de reconnaître, d’exclure ou de requalifier les participants.

Le bon critère n’est donc pas la quantité de fonctions, mais le lien entre ces fonctions et l’interopérabilité nécessaire.

Un rôle partagé est légitime techniquement lorsqu’il protège une propriété que les participants doivent réellement partager.

Il devient plus contestable lorsqu’il commence à réglementer des préférences qui pourraient rester locales sans casser l’interopérabilité des autres.

Une leçon sur le socle commun initial

L’histoire de l’IMP peut aussi être lue comme un exemple de spécification bornée par l’implémentation.

BBN devait construire quelque chose de précis.

Les hôtes devaient construire autre chose.

Les deux côtés devaient s’accorder suffisamment pour que les machines communiquent.

Tout n’avait pas besoin d’être décidé par une institution unique avant la première utilisation.

Cette logique conduit à une règle de conception : spécifier strictement ce qui doit être commun, puis laisser le reste évoluer là où il peut évoluer sans menacer les invariants partagés.

Il ne faut pas exagérer la comparaison.

ARPANET n’était pas un système distribué sans autorité centrale. ARPA finançait le programme. BBN construisait le sous-réseau. Des décisions centralisées existaient. L’infrastructure elle-même possédait beaucoup d’état.

Mais l’épisode montre que coordination commune et contrôle total ne sont pas synonymes.

L’existence d’une interface crée précisément la possibilité qu’une implémentation soit forte d’un côté de la frontière sans coloniser tout ce qui existe de l’autre.

Le pouvoir de l’implémentation en marche

L’autre constat utile concerne l’implémentation réelle.

Une architecture acquiert sa substance lorsque les machines fonctionnent.

Le premier IMP livré n’était pas seulement une affirmation sur l’avenir du réseau. Il obligeait les équipes à confronter leurs idées à un objet technique avec des délais, des interfaces et des erreurs possibles.

Cette friction distingue l’architecture de la déclaration.

Un document peut promettre une propriété.

Un comité peut approuver une convention.

Une organisation peut publier une politique.

Mais une propriété de réseau n’existe vraiment que si des systèmes compatibles l’implémentent, si les messages passent et si les participants peuvent vérifier le comportement obtenu.

L’IMP ne prouve pas une théorie générale de l’adoption volontaire. Il rappelle une chose plus modeste et plus sûre : dans les réseaux, la réalité d’une règle est limitée par ce que les implémentations font effectivement.

Cette contrainte devrait inspirer la conception contemporaine.

Plus une règle prétend contrôler l’exploitation future, plus on devrait demander quelle propriété technique elle protège, comment elle est vérifiée et pourquoi elle doit vivre dans la couche partagée.

La séparation des responsabilités n’est pas la séparation des intérêts

Une frontière technique n’élimine pas les conflits économiques.

ARPA voulait un réseau opérationnel.

BBN devait livrer.

Les équipes hôtes avaient leurs propres contraintes.

Une décision prise dans un composant pouvait augmenter le travail nécessaire dans un autre.

Une fonction centralisée pouvait faciliter la vie des hôtes, mais alourdir le sous-réseau.

Une fonction déportée pouvait favoriser l’autonomie, mais imposer une complexité supplémentaire aux extrémités.

Il serait naïf de croire qu’il existe toujours une réponse techniquement pure.

La bonne architecture est souvent un compromis de coûts.

La différence est qu’un compromis fonctionnel peut être rendu explicite.

On peut demander combien de participants doivent implémenter une capacité.

On peut comparer le coût de réplication à celui de la concentration.

On peut mesurer le coût d’une panne.

On peut tester la possibilité de remplacer un intermédiaire.

On peut décider qu’une fonction d’accélération appartient au réseau tout en gardant la vérification finale aux extrémités.

Ce type de décision est plus robuste qu’une question de prestige institutionnel : « Qui a historiquement la compétence ? »

L’IMP suggère une réponse plus opérationnelle : celui qui fournit une fonction doit avoir assez d’autorité pour que cette fonction marche ; pas nécessairement davantage.

Le critère de replaceabilité

Une couche commune n’est pas seulement définie par ce qu’elle fait. Elle l’est aussi par les conditions dans lesquelles on peut la remplacer.

Le sous-réseau ARPANET était fortement dépendant de l’implémentation BBN, mais son interface définissait une limite reconnaissable.

Cette limite est importante parce que la modularité produit une option.

Lorsque l’interface est suffisante, au moins en principe, il devient possible de réimplémenter un côté sans réécrire l’autre.

Il ne faut pas prétendre que cette possibilité était parfaite ou sans coût. Les archives disponibles ne démontrent pas un marché ouvert de fournisseurs d’IMP interchangeables. L’histoire réelle comporte contrats, matériel spécifique, échéances et dépendances pratiques.

Mais le principe reste valable : une interface publique et suffisante réduit l’étendue de ce qu’il faut contrôler pour interopérer.

À l’inverse, lorsqu’un intermédiaire accumule de l’état qui n’est ni portable ni reproductible, il acquiert un avantage différent.

Le participant n’a plus seulement besoin de la fonction. Il a besoin de l’histoire interne du fournisseur.

Cette dépendance est économiquement plus profonde.

Pourquoi l’identité dans le réseau mérite la méfiance architecturale

Les infrastructures modernes aiment agréger les fonctions.

Un opérateur peut vouloir intégrer l’identité, la sécurité, la conformité, la politique d’accès et l’observabilité au même point du réseau.

Il existe de bonnes raisons de le faire.

Une politique cohérente peut être plus simple à gérer.

L’inspection centralisée peut détecter des abus.

Une plateforme commune peut réduire les coûts opérationnels.

L’histoire de l’IMP n’ordonne pas de rejeter ces approches.

Elle fournit un test plus précis : la fonction intermédiaire rend-elle une amélioration locale ou possède-t-elle la connaissance nécessaire pour rendre le résultat final correct ?

Prenons l’identité.

Un intermédiaire peut authentifier un signal ou attester une propriété.

Mais si la décision finale dépend du contexte applicatif, la couche réseau ne peut pas nécessairement savoir si l’action est légitime pour l’application.

Le danger commence lorsqu’une aide de sécurité devient une condition universelle d’existence.

À ce moment, l’intermédiaire ne se contente plus de réduire le risque. Il détermine la possibilité de fonctionner.

La distinction entre amélioration et complétude, issue de l’argument end-to-end, devient alors une distinction de gouvernance.

Une couche mince n’est pas une couche faible

Le langage de la « minceur » est fréquemment mal compris.

Une couche commune mince peut être extrêmement fiable.

Elle peut comporter du code sophistiqué.

Elle peut nécessiter des opérateurs professionnels.

Elle peut traiter des volumes gigantesques.

Elle peut détenir un état de routage très important.

La minceur signifie que sa responsabilité s’arrête avant d’absorber des décisions dont la correction dépend d’informations situées ailleurs.

L’Internet n’a pas gagné sa capacité d’évolution parce que son cœur serait dépourvu d’intelligence.

Il l’a gagnée en empêchant qu’une seule conception d’application soit nécessaire au fonctionnement de toutes les autres.

C’est le bénéfice économique de la frontière.

Une innovation nouvelle peut être essayée par quelques participants sans faire modifier tout le réseau commun.

Un refus d’adopter une fonction nouvelle n’oblige pas nécessairement les autres à la refuser.

L’échec d’une application ne devient pas automatiquement une erreur du substrat.

La diversité peut augmenter sans que la couche commune ait besoin de comprendre chaque cas.

De l’IMP au principe de compatibilité

On peut ainsi voir un fil conceptuel entre trois moments, sans les confondre.

Le premier est celui de l’IMP : un sous-réseau commun riche en fonctions, mais dont les limites obligent encore les hôtes à participer.

Le deuxième est celui de l’interconnexion ouverte : plusieurs réseaux indépendants doivent pouvoir communiquer sans partager toutes les propriétés internes d’ARPANET.

Le troisième est celui de la formalisation end-to-end : si une fonction requiert des connaissances propres à l’application pour être complètement correcte, elle doit être vérifiée aux extrémités, même si le réseau l’aide.

Ce fil ne raconte pas l’abandon de l’infrastructure.

Il raconte la transformation du critère d’appartenance au substrat commun.

Au début, une fonction peut être commune parce qu’un seul réseau sait la fournir.

Plus tard, lorsque plusieurs réseaux doivent coexister, la barre devient plus haute : la fonction doit être compatible avec l’hétérogénéité.

Enfin, lorsqu’on raisonne sur la correction complète, la question devient : où se trouve l’information qui permet de savoir si la fonction a réussi ?

Ces trois critères — mutualisation, compatibilité, connaissance — sont encore utiles.

Le piège de l’autorité héritée

Il existe une tendance humaine à transformer la continuité opérationnelle en continuité de mandat.

L’organisation qui a rendu un service essentiel devient familière.

Ses conventions deviennent la norme.

La norme devient une présomption d’autorité.

Puis les décisions de l’organisation sont traitées comme nécessaires au fonctionnement, même lorsqu’elles portent sur des sujets qui ne sont plus requis par le mécanisme initial.

Le dossier historique ne montre pas que BBN ait revendiqué une telle extension. Il faut le dire clairement.

La leçon est structurelle, pas accusatoire.

Le fait d’avoir été indispensable à un moment donné ne prouve pas qu’une institution doit décider de toutes les évolutions futures.

Le pouvoir d’achat ne suffit pas.

Le fait d’avoir écrit l’implémentation ne suffit pas.

La possession d’un registre ou d’un état ne suffit pas.

La bonne question est toujours : quelle propriété de fonctionnement exige cette décision commune ?

Si aucune réponse déterministe n’est disponible, le système risque d’avoir déplacé une préférence institutionnelle dans une couche que les opérateurs ne peuvent contourner.

La frontière IMP comme discipline de conception

La meilleure manière de retenir cette histoire n’est donc pas de célébrer l’IMP ni de le condamner comme trop « épais ».

C’est de conserver la discipline de sa frontière.

Le réseau avait une mission.

Les hôtes avaient des responsabilités.

L’interface était le lieu où les deux systèmes devaient se comprendre.

Lorsque les limites du réseau apparaissaient — congestion, capacité, connaissance incomplète du comportement des hôtes — la réponse ne pouvait être simplement d’attribuer au sous-réseau une omniscience inexistante.

Lorsque l’Internet s’étendit à plusieurs réseaux, la même logique devint plus forte. Une propriété qui pouvait être présumée dans ARPANET ne pouvait plus être présumée partout.

La conception s’adapta en réduisant les hypothèses obligatoires.

Ce mouvement possède une portée économique très actuelle.

Une infrastructure ouverte n’est pas une infrastructure qui refuse toute coordination centrale.

C’est une infrastructure qui sait expliquer pourquoi chaque fonction commune doit être commune.

Ce que les décideurs d’aujourd’hui devraient demander

Face à une nouvelle couche d’infrastructure, les questions pertinentes ressemblent moins à une bataille idéologique entre centralisation et décentralisation qu’à un audit des responsabilités.

Quel état la couche conserve-t-elle ?

Cet état est-il nécessaire à la transmission ou sert-il une application particulière ?

Qui peut vérifier que la fonction a produit le bon résultat ?

L’utilisateur peut-il refaire la vérification localement ?

Un autre fournisseur peut-il réimplémenter l’interface ?

La fonction est-elle une optimisation utile ou une condition de correction ?

Le refus de cette fonction empêche-t-il seulement d’utiliser le service, ou empêche-t-il d’exister dans l’écosystème ?

Le prestataire peut-il modifier l’effet économique de ressources déjà utilisées sans que les opérateurs concernés adoptent la nouvelle règle ?

La réponse à ces questions révèle plus de choses que le nom institutionnel du fournisseur.

Une plateforme privée, une agence publique, un consortium ou un organisme sans but lucratif peuvent tous créer un point de contrôle s’ils placent dans une couche commune une quantité excessive d’état non substituable.

Inversement, une fonction fortement centralisée peut rester relativement étroite si elle est bien spécifiée, vérifiable et remplaçable.

Ce que l’histoire prouve — et ce qu’elle ne prouve pas

Le dossier permet d’affirmer plusieurs choses avec confiance.

Premièrement, la responsabilité était explicitement partagée entre logiciel IMP et logiciel hôte.

Deuxièmement, l’IMP exécutait une quantité substantielle de fonctions réseau et ne ressemblait pas à un simple relais sans état.

Troisièmement, les hôtes restaient nécessaires au fonctionnement correct du système.

Quatrièmement, l’autorité de BBN s’appuyait sur un contrat et sur une implémentation livrée, pas seulement sur une reconnaissance abstraite.

Cinquièmement, NCP dépendait d’hypothèses liées à un réseau unique dont ARPANET fournissait la fiabilité.

Sixièmement, l’interconnexion de réseaux indépendants exigea un modèle dans lequel les réseaux sous-jacents pouvaient rester autonomes et dans lequel la récupération devait pouvoir être effectuée aux extrémités.

Septièmement, l’argument end-to-end donnera ensuite une formulation générale au critère de connaissance nécessaire à la correction complète.

Les sources ne permettent pas d’affirmer qu’ARPANET aurait déjà suivi consciemment la doctrine end-to-end.

Elles ne permettent pas d’attribuer à BBN seul l’invention de la commutation de paquets.

Elles ne montrent pas que chaque détail contractuel ou chaque désaccord entre acteurs ait été conservé.

Elles ne transforment pas les RFC de travail en constitution complète.

Et elles ne prouvent pas qu’un intermédiaire est par nature illégitime.

La conclusion raisonnable est plus étroite.

Une infrastructure commune mérite l’autorité nécessaire à la fonction qu’elle doit effectivement exécuter.

Une interface peut rendre cette autorité puissante sans la rendre illimitée.

Une fonction qui ne peut être complète qu’avec la connaissance de l’extrémité doit finalement être vérifiée à l’extrémité.

Et lorsqu’un système grandit, la réussite ne consiste pas à déplacer toujours davantage de décisions dans la couche que tout le monde partage. Elle consiste souvent à déterminer ce qui peut rester local sans casser ce que les autres ont déjà fait fonctionner.

L’IMP matérialisait une frontière avant que l’Internet ne possède le vocabulaire pour la théoriser.

La réussite ultérieure de l’Internet ne vint pas de l’abolition de cette frontière, mais de son raffinement.

Le réseau resta nécessaire.

Les extrémités restèrent responsables.

Et l’architecture apprit progressivement qu’une bonne infrastructure commune n’est pas celle qui sait tout.

C’est celle qui sait exactement ce qu’elle doit savoir.

Sources et limites des preuves

Les sources ci-dessous ne possèdent pas toutes le même statut documentaire. Les premiers RFC sont des documents contemporains de travail et non une constitution exhaustive d’ARPANET. RFC 1000 est une rétrospective ultérieure. Les archives orales du Computer History Museum restituent le témoignage des acteurs après les faits et doivent donc être distinguées des spécifications contemporaines.

Les textes de l’Internet Society, de David Clark, de Saltzer, Reed et Clark ainsi que RFC 3439 apportent une interprétation architecturale plus tardive. Ils peuvent éclairer la trajectoire allant d’ARPANET vers l’Internet ouvert, mais ils ne doivent pas être projetés rétroactivement comme doctrine consciente de tous les participants de 1969.

Le dossier disponible ne reconstitue pas chaque instruction contractuelle, chaque choix d’implémentation ni chaque conflit institutionnel. L’interprétation selon laquelle l’autorité de BBN suivait la fonction, l’interface et l’implémentation effectivement livrées constitue donc une inférence éditoriale bornée, et non une déclaration historique explicitement formulée par les acteurs.

https://www.rfc-editor.org/rfc/rfc1.html

https://www.rfc-editor.org/rfc/rfc2.html

https://www.rfc-editor.org/rfc/rfc7.html

https://www.rfc-editor.org/rfc/rfc528.html

https://www.rfc-editor.org/rfc/rfc1000.html

https://archive.computerhistory.org/resources/access/text/2012/11/102706168-05-01-acc.pdf

https://archive.computerhistory.org/resources/access/text/2017/11/102702222-05-01-acc.pdf

https://www.internetsociety.org/internet/history-internet/brief-history-internet/

https://www.internetsociety.org/internet/history-internet/brief-history-internet-related-networks/

https://datatracker.ietf.org/doc/html/rfc675

https://groups.csail.mit.edu/ana/People/DDC/ebook-arch-V1.pdf

https://groups.csail.mit.edu/ana/Publications/PubPDFs/End-to-End%20Arguments%20in%20System%20Design.pdf

https://www.rfc-editor.org/rfc/rfc3439.html