Eine kurze Geschichte von Chaosnet

Wir beschlossen, eine weitere Reise in die Vergangenheit des Networking zu unternehmen. Dieses Mal sprechen wir über Chaosnet, ein spezifisches Netzwerkprotokoll, das in den 1970er Jahren von Lisp-Maschinen verwendet wurde. Der Artikel basiert auf einem Hinweis zu TwoBitHistory, den wir erweitert und durch unsere eigenen Ergebnisse und Illustrationen ergänzt haben.



Wenn wir dig verwenden, um eine Anfrage an den DNS über eine Site zu senden, z. B. it-grad.ru, erhalten wir ungefähr Folgendes:



$ dig it-grad.ru






Die Zeile Antwortabschnitt enthält Informationen zu einem Datensatz vom Typ A.



Schauen wir uns das Feld "IN" genauer an. Vielleicht denkt jemand, dass "IN" eine solche Ausrede ist: it-grad.ru IN (innerhalb) A und hat eine IP-Adresse von 212.116.122.3. In der Tat bedeutet "IN" "Internet". Dies ist die Aufnahmeklasse .



Es stellt sich natürlich die Frage: Welche anderen Möglichkeiten kann es geben? Wie können Sie auf einen Host zugreifen, der sich nicht im Internet befindet? Es mag scheinen, dass IN im Allgemeinen die einzige Bedeutung ist, die in der modernen Welt Sinn macht. Wenn Sie dieselbe it-grad.ru "unterbrechen" und explizit angeben, dass Sie einen Eintrag mit einer anderen Klasse als IN erhalten möchten, gibt der DNS-Server einen Fehler zurück. Lassen Sie uns eine weitere Anfrage stellen und sehen, was passiert, wenn eine Klasse explizit angegeben wird. Zum Beispiel HS (Hesoid). Der Server gibt den SERVFAIL-Status zurück.



$ dig -c HS it-grad.ru






Andere Klassen als IN werden in der modernen Welt praktisch nicht verwendet. Das heißt aber überhaupt nicht, dass sie nicht existieren: Zum Beispiel gibt es HS oder CH. HS ist für den Einsatz im Hesoid Information Service reserviert, der nach einem antiken griechischen Dichter benannt ist. Die CH-Klasse ist jedoch den Bedürfnissen des Helden des Artikels, Chaosnet, vorbehalten. Im Moment ist es nur von historischem Erinnerungswert.





Andere DNS-Klassen



Heute gehört die Welt zu TCP / IP. Dieses Protokoll (zusammen mit UDP) verwaltet die überwiegende Mehrheit der Netzwerkverbindungen. Aber wie Sie sehen, gibt es an einigen Stellen immer noch Spuren eines anderen, längst verschwundenen Systems, und dies ist auf seine Weise bemerkenswert. Was ist Chaosnet? Was war es und von wem wurde es benutzt? Warum ist er in Vergessenheit geraten? Lass es uns herausfinden.



Alles begann am MIT



Chaosnet wurde in den 1970er Jahren von Mitarbeitern des MIT Artificial Intelligence Lab erstellt. Es war ein "Begleitprodukt" des Entwurfs einer Maschine, die die Programmiersprache Lisp effizienter ausführen konnte als Allzweckcomputer.



Lisp ist die Idee des MIT-Professors und 1971 Turing-Preisträgers John McCarthy . Er ist der Begründer der funktionalen Programmierung und der Autor des in einigen Kreisen verurteilten Begriffs "künstliche Intelligenz".





John McCarthy selbst



Die früheste Version von Lisp gilt als der Interpreter von 1958 für die IBM 704. Tatsächlich ist sie neben Fortran eine der ältesten aktuellen Programmiersprachen.



Die erste öffentliche Erwähnung von Lisp (Version 1) stammt aus dem Jahr 1960. Und bis 1962 war eine erweiterte und verbesserte Version 1.5 fertig. Lisp enthielt eine Menge Tools und Funktionen, die in den meisten modernen Programmiersprachen zu finden sind.



Es war die erste Sprache, die die Speicherbereinigung und die automatische Speicherverwaltung implementierte. Er gewann immense Popularität und Liebe unter den Programmierern, die an KI arbeiteten. Hier ist nur ein berühmtes Beispiel: SHRDLU, ein Programm von Terry Winograd, mit dem ein Computer in natürlicher Sprache aufgerufen und einfache logische Probleme gelöst werden konnten. Es wurde in DEC PDP-6 mit den Sprachen Lisp und Micro Planner geschrieben.





Beispiel für SHRDLU



Lisps einziges Problem war seine Geschwindigkeit. Die einfachsten Vorgänge dauerten doppelt so lange wie in anderen Sprachen, da die Variablen sowohl zur Laufzeit als auch zur Kompilierungszeit doppelt überprüft wurden. Der Garbage Collector lief über eine Sekunde auf der damaligen IBM 7090, die dem MIT zur Verfügung stand. Das Leistungsproblem war äußerst akut: KI-Programmierer bauten Systeme, die in Echtzeit mit dem Benutzer interagierten.



In den späten 1970er Jahren wurde beschlossen, einen speziellen Computer für Lisp zu bauen, der alle Merkmale der Sprache berücksichtigt. Der Computer musste über mehr Speicher und einen kompakten Befehlssatz verfügen, der für Lisp geeignet war. Es wurde angenommen, dass ein unabhängiger Stromkreis zur Typprüfung verwendet werden würde, was den Code erheblich beschleunigen würde. Eine weitere Besonderheit der Lisp-Maschinen war, dass von einer Aufteilung der Prozessorzeit keine Rede sein konnte: Ehrgeizige Programme verwendeten alle Ressourcen des Computers spurlos. Jedem Benutzer wurde eine separate Zentraleinheit „zugewiesen“. So haben Mitarbeiter der Lisp Machine Group die Aussichten für die Arbeit mit einem solchen Computer beschrieben:

Lisp Machine — . , . , . , , . . , , , , , .
Natürlich wird der Begriff "Personal Computer" in Bezug auf Lisp-Maschinen in einem etwas anderen Sinne verwendet, als wir es heute gewohnt sind.





Lisp-Maschine





Werbefoto des Terminals



Es wurde angenommen, dass Benutzer nicht direkt mit einem Computer arbeiten würden, sondern mit speziellen Terminals. Jeder Benutzer erhält eine dedizierte Stromversorgung, und der Computer selbst befindet sich im Computerraum, um das gesamte Büro nicht mit den Geräuschen von Berechnungen zu belästigen. Die Prozessoren haben über ein Hochgeschwindigkeits-LAN mit "vollständig verteilter Steuerung" Zugriff auf das Dateisystem und Peripheriegeräte wie Drucker. So wurde Chaosnet geboren. Seine Schöpfer sind Thomas Knight ( Biographie in russischer Sprache ) und Jack Holloway.



Chaosnet war sowohl ein Eisenstandard als auch ein Softwareprotokoll. In Bezug auf die Ausstattung ähnelte dieser Standard Ethernet, und das Softwareprotokoll funktionierte letztendlich über Ethernet. Im Gegensatz zu TCP / IP sollte es jedoch ausschließlich lokale Netzwerke verwalten. Einer der Mitarbeiter des MIT Artificial Intelligence Lab sagte, dass bei der Entwicklung von Chaosnet das Hauptaugenmerk auf der Erstellung eines Protokolls lag, das innerhalb eines kleinen Netzwerks bessere Ergebnisse als seine "Konkurrenten" liefern würde.



Geschwindigkeit war entscheidend, da Chaosnet die Zwischenverbindung zwischen dem Lisp-Prozessor und dem Dateisystem war. Netzwerkverzögerungen würden die Geschwindigkeit der Grundoperationen beeinflussen. Um maximale Leistung zu gewährleisten, wurde das Netzwerksteuerungsprogramm, das damals in Arpanet verwendet wurde, als Grundlage genommen (und weiter verbessert). Chaosnet verwendete wie modernes TCP / IP Paketbestätigungen von Nachrichten, wodurch die Gesamtzahl der übertragenen Pakete um 30-50% reduziert wurde.



Chaosnet könnte auch auf Routing-Algorithmen verzichten, da die meisten Hosts im Lisp-Netzwerk über ein einziges kurzes Kabel (CATV, Koaxialkabel) verbunden waren. David Moon von der Lisp Machine Group schrieb, dass Chaosnets Routing-Schema „auf der Annahme basiert, dass das Netzwerk so einfach ist, dass es nur wenige kurze Wege gibt. Komplexe Schemata werden hier nicht benötigt. " Infolgedessen wog das Chaosnet-Steuerungsprogramm halb so viel wie das Arpanet-Netzwerksteuerungsprogramm.



Das Chaosnet-Protokoll hatte auch andere Funktionen. Die Länge der Adresse betrug also nur 16 Bit, was der halben Länge der IPv4-Adresse entspricht. Ein durchaus vernünftiger Ansatz, wenn man bedenkt, dass Chaosnet nur für lokale Netzwerke gedacht war. Die ersten 8 Bits zeigten auf das Subnetz, die zweiten auf einen bestimmten Host.



Auch Chaosnet verwendete keine Portnummern. Stattdessen hat ein Prozess, der eine Verbindung zu einem anderen Prozess auf einem anderen Computer herstellen wollte, eine Anforderung gestellt, in der der „Kontaktname“ des Ziels angegeben wurde. Oft der Name eines bestimmten Dienstes. Beispielsweise könnte ein Host versuchen, über den TELNET-Kontaktnamen eine Verbindung zu einem anderen Host herzustellen. Dies ist TCP sehr ähnlich: Beispielsweise kann auf Port 80 "über den Namen" HTTP zugegriffen werden.



Die CH-DNS-Klasse Chaosnet wurde 1986 zu DNS hinzugefügt. Es ersetzte eine andere Klasse, CSNET (Computer Science Network). Jetzt ist es schwer herauszufinden, warum Chaosnet seinen Platz im DNS hat. Es gab andere Familien von Protokollen, die aus irgendeinem Grund nicht hinzugefügt wurden. Zum Beispiel schrieb Paul Mockapetris, einer der Hauptarchitekten von DNS, dass ursprünglich beabsichtigt war, die Xerox-Netzwerkprotokollklasse in das Domänennamensystem aufzunehmen. Aus unbekannten Gründen ist dies jedoch nicht geschehen. Und Chaosnet wurde möglicherweise nur hinzugefügt, weil die meisten Arbeiten an Arpanet und im Internet bei BBN Technologies durchgeführt wurden. Die Mitarbeiter dieses Unternehmens waren eng mit dem MIT verbunden und haben wahrscheinlich viel über Chaosnet gehört.



Lisp-Maschinen waren ursprünglich ein kommerzieller Erfolg, der von Symbolics und Lisp Machines Inc. verkauft wurde. Aber im Laufe der Zeit ist die Notwendigkeit für sie verschwunden. Sie wurden durch Mikrocomputer ersetzt, die mit Lisp arbeiten konnten, jedoch ohne spezielle Schaltkreise. Dann kam TCP / IP auf die Bühne, in der die Mängel von Arpanet behoben wurden und Chaosnet seine Relevanz verlor.



Geist aus der Vergangenheit



Leider gibt es momentan nicht so viele Informationen über Chaosnet. RFC 675, im Wesentlichen die erste Version von TCP / IP, wurde 1974 veröffentlicht. Chaosnet erschien ein Jahr später. TCP / IP eroberte schließlich die Welt und Chaosnet entwickelte sich nicht. Es ist möglich, dass einige Chaosnet-Praktiken die Entwicklung von TCP / IP beeinflusst haben, aber es gibt keine Beweise, die dies unterstützen oder widerlegen. Unterhaltsame Tatsache: In der Originalversion des GNU-Manifests wird die Unterstützung des Chaosnet-Protokolls erwähnt.



Verschiedene Chaosnet- Implementierungen und interessante Links:





Die einzige wahrnehmbare Spur von Chaosnet im World Wide Web ist die CH DNS-Klasse. Es ist nichts weiter als das Gespenst eines alternativen Netzwerkprotokolls in der Welt des siegreichen TCP / IP. Ein lustiges Artefakt der digitalen Archäologie. Aber es ist eine "lebende" Erinnerung daran, dass das Internet nicht über Nacht aufgetaucht ist und TCP / IP nicht die einzige Möglichkeit ist, Computer miteinander zu verbinden.



Es ist auch ein Grund, darüber nachzudenken, dass "Internet" alles andere als das coolste Wort ist, das zur Taufe unseres globalen Kommunikationssystems verwendet werden könnte.



All Articles