Une brève histoire de Chaosnet

Nous avons décidé de faire un autre voyage dans le passé du réseautage. Cette fois, nous parlerons de Chaosnet, un protocole réseau spécifique utilisé dans les années 1970 par les machines Lisp. L'article était basé sur une note sur TwoBitHistory, que nous avons développée et complétée par nos propres découvertes et illustrations.



Si nous utilisons dig pour envoyer une requête au DNS à propos d'un site, par exemple, it-grad.ru, nous obtenons quelque chose comme ceci:



$ dig it-grad.ru






La ligne de la section Réponse contient des informations sur un enregistrement de type A.



Examinons de plus près le champ "IN". Peut-être que quelqu'un pense que "IN" est une telle excuse: it-grad.ru IN (inside) A et a une adresse IP de 212.116.122.3. En fait, "IN" signifie "Internet". C'est la classe d'enregistrement .



Une question naturelle se pose: quelles autres options peut-il y avoir? Comment accéder à un hôte qui n’est pas sur Internet? Il peut sembler que IN est généralement le seul sens qui ait un sens dans le monde moderne. De plus, si vous «cassez» le même it-grad.ru et indiquez explicitement que vous voulez obtenir un enregistrement avec une classe autre que IN, le serveur DNS renverra une erreur. Faisons une autre requête et voyons ce qui se passe lors de la spécification explicite d'une classe. Par exemple, HS (Hesoid). Le serveur retournera le statut SERVFAIL.



$ dig -c HS it-grad.ru






Les classes autres que IN ne sont pratiquement pas utilisées dans le monde moderne. Mais cela ne signifie pas du tout qu'ils n'existent pas: par exemple, il y a HS ou CH. HS est réservé à l'utilisation dans le service d'information Hesoid, nommé d'après un ancien poète grec. Mais la classe CH est réservée aux besoins du héros de l'article, Chaosnet. Pour le moment, il n'a qu'une valeur historique et mémorielle.





Autres classes DNS



Aujourd'hui, le monde appartient à TCP / IP. Ce protocole (avec UDP) gère la grande majorité des connexions réseau. Mais, comme vous pouvez le voir, à certains endroits, il y a encore des traces d'un autre système depuis longtemps disparu, et c'est remarquable à sa manière. Qu'est-ce que Chaosnet? De quoi s'agissait-il et par qui a-t-il été utilisé? Pourquoi a-t-il sombré dans l'oubli? Découvrons-le.



Tout a commencé au MIT



Chaosnet a été créé par le personnel du laboratoire d'intelligence artificielle du MIT dans les années 1970. C'était un produit «compagnon» de la conception d'une machine capable d'exécuter le langage de programmation Lisp plus efficacement que les ordinateurs à usage général.



Lisp est l'idée originale du professeur du MIT et lauréat du prix Turing 1971 John McCarthy . Il est le fondateur de la programmation fonctionnelle et l'auteur du terme (condamné dans certains cercles) «intelligence artificielle».





John McCarthy lui-même



La version la plus ancienne de Lisp est considérée comme l'interprète de 1958 pour l'IBM 704. En fait, c'est l'un des langages de programmation actuels les plus anciens aux côtés de Fortran.



La première mention publique de Lisp (version 1) remonte à 1960. Et en 1962, une version 1.5 avancée et améliorée était prête. Lisp comprenait une tonne d'outils et de fonctions que l'on trouve dans la grande majorité des langages de programmation modernes.



C'était le premier langage à implémenter le garbage collection et la gestion automatique de la mémoire. Il a acquis une immense popularité et un immense amour parmi les programmeurs travaillant sur l'IA. Voici juste un exemple célèbre: SHRDLU, un programme de Terry Winograd qui permettait à un ordinateur de parler en langage naturel et de résoudre des problèmes de logique simples. Il a été écrit en DEC PDP-6 en utilisant les langages Lisp et Micro Planner.





Exemple illustrant SHRDLU



Le seul problème de Lisp était sa vitesse. Les opérations les plus simples prenaient deux fois plus de temps que dans d'autres langages, car les variables étaient vérifiées deux fois, à la fois au moment de l'exécution et à la compilation. Le garbage collector a fonctionné pendant plus d'une seconde sur l'IBM 7090 d'alors, qui était à la disposition du MIT. Le problème de performances était extrêmement aigu: les programmeurs d'IA ont construit des systèmes qui interagissaient avec l'utilisateur en temps réel.



À la fin des années 1970, il a été décidé de construire un ordinateur spécial pour Lisp, en tenant compte de toutes les fonctionnalités du langage. L'ordinateur devait avoir plus de mémoire et un jeu d'instructions compact adapté à Lisp. On a supposé qu'un circuit électrique indépendant serait utilisé pour la vérification de type, ce qui accélérerait considérablement le code. Une autre particularité des machines Lisp était qu'il ne pouvait être question d'aucune division du temps processeur: des programmes ambitieux utilisaient toutes les ressources de l'ordinateur sans laisser de trace. Chaque utilisateur s'est vu «attribuer» une unité centrale de traitement distincte. Voici comment les employés de Lisp Machine Group ont décrit les perspectives de travailler avec un tel ordinateur:

Lisp Machine — . , . , . , , . . , , , , , .
Bien sûr, le terme «ordinateur personnel» en relation avec les machines Lisp est utilisé dans un sens légèrement différent de celui auquel nous sommes habitués actuellement.





Machine Lisp





Photo promotionnelle du terminal



On a supposé que les utilisateurs ne travailleraient pas directement avec un ordinateur, mais avec des terminaux spéciaux. Chaque utilisateur recevra une alimentation dédiée, et l'ordinateur lui-même sera dans la salle informatique, afin de ne pas déranger tout le bureau avec les sons des calculs. Les processeurs auront accès au système de fichiers et aux périphériques tels que les imprimantes via un LAN à «contrôle entièrement distribué» à grande vitesse. C'est ainsi que Chaosnet est né. Ses créateurs sont Thomas Knight ( biographie en russe ) et Jack Holloway.



Chaosnet était à la fois un standard de fer et un protocole logiciel. En termes d'équipement, cette norme était similaire à Ethernet, et le protocole logiciel fonctionnait finalement sur Ethernet. Mais contrairement à TCP / IP, il était censé gérer exclusivement des réseaux locaux. L'un des employés du laboratoire d'intelligence artificielle du MIT a déclaré que lors du développement de Chaosnet, l'objectif principal était d'écrire un protocole qui, au sein d'un petit réseau, donnerait de meilleurs résultats que ses «concurrents».



La vitesse était critique car Chaosnet était le lien intermédiaire entre le processeur Lisp et le système de fichiers. Les retards du réseau affecteraient la vitesse des opérations de base. Pour assurer des performances maximales, le programme de contrôle du réseau, qui a ensuite été utilisé dans Arpanet, a été pris comme base (et encore amélioré). Chaosnet, comme le TCP / IP moderne, utilisait des accusés de réception de messages, ce qui réduisait le nombre total de paquets transmis de 30 à 50%.



Chaosnet pouvait également se passer d'algorithmes de routage, puisque la plupart des hôtes du réseau Lisp étaient connectés par un seul fil court (CATV, câble coaxial). David Moon du Lisp Machine Group a écrit que le schéma de routage de Chaosnet «est basé sur l'hypothèse que le réseau est suffisamment simple pour qu'il n'y ait que quelques chemins courts. Des schémas complexes ne sont pas nécessaires ici. " En conséquence, le programme de contrôle Chaosnet pesait deux fois moins que le programme de contrôle de réseau Arpanet.



Le protocole Chaosnet avait également d'autres fonctionnalités. Ainsi, la longueur de l'adresse n'était que de 16 bits, soit la moitié de la longueur de l'adresse IPv4. Une approche parfaitement raisonnable, considérant que Chaosnet était destiné uniquement aux réseaux locaux. Les 8 premiers bits pointaient vers le sous-réseau, le second vers un hôte spécifique.



Chaosnet n'a pas non plus utilisé de numéros de port. Au lieu de cela, un processus qui «voulait» se connecter à un autre processus sur un autre ordinateur a fait une demande qui spécifiait le «nom du contact» de la cible. Souvent le nom d'un service spécifique. Par exemple, un hôte peut essayer de se connecter à un autre hôte en utilisant le nom du contact TELNET. Ceci est très similaire à TCP: par exemple, le port 80 est accessible "par nom" HTTP.



La classe CH DNS, Chaosnet, a été ajoutée au DNS en 1986. Il a remplacé une autre classe, CSNET (Computer Science Network). Maintenant, il est difficile de comprendre exactement pourquoi Chaosnet a sa place dans le DNS. Il y avait d'autres familles de protocoles qui, pour une raison quelconque, n'y étaient pas ajoutées. Par exemple, Paul Mockapetris, l'un des principaux architectes du DNS, a écrit qu'il était initialement prévu d'inclure la classe de protocole réseau Xerox dans le système de noms de domaine. Mais pour des raisons inconnues, cela ne s'est pas produit. Et Chaosnet peut avoir été ajouté uniquement parce que la plupart des travaux sur Arpanet et Internet ont été réalisés chez BBN Technologies. Les employés de cette entreprise étaient étroitement associés au MIT et ont probablement beaucoup entendu parler de Chaosnet.



Les machines Lisp ont d'abord été un succès commercial vendu par Symbolics et Lisp Machines Inc. Mais avec le temps, leur besoin a disparu. Ils ont été remplacés par des micro-ordinateurs, qui pouvaient fonctionner avec Lisp, mais sans circuits spéciaux. Ensuite, TCP / IP est entré en scène, dans lequel les lacunes d'Arpanet ont été corrigées et Chaosnet a perdu sa pertinence.



Fantôme du passé



Malheureusement, il n'y a pas beaucoup d'informations sur Chaosnet pour le moment. La RFC 675, qui est essentiellement la première version de TCP / IP, a été publiée en 1974. Chaosnet est apparu un an plus tard. TCP / IP a finalement conquis le monde et Chaosnet ne s'est pas développé. Il est possible que certaines pratiques Chaosnet aient influencé le développement de TCP / IP, mais il n'y a aucune preuve pour soutenir ou réfuter cela. Fait amusant: la version originale du manifeste GNU mentionne la prise en charge du protocole Chaosnet.



Diverses implémentations de Chaosnet et liens intéressants:





La seule trace visible de Chaosnet sur le World Wide Web est la classe DNS CH. Ce n'est rien de plus que le spectre d'un protocole réseau alternatif dans le monde du TCP / IP victorieux. Un artefact amusant de l'archéologie numérique. Mais c'est un rappel «vivant» qu'Internet n'est pas apparu du jour au lendemain, et TCP / IP n'est pas le seul moyen de connecter des ordinateurs entre eux.



C'est aussi une raison de penser au fait que «Internet» est loin d'être le mot le plus cool qui puisse être utilisé pour baptiser notre système de communication global.



All Articles