Una breve historia de Chaosnet

Decidimos hacer otro viaje al pasado de las redes. Esta vez hablaremos de Chaosnet, un protocolo de red específico que fue utilizado en la década de 1970 por las máquinas Lisp. El artículo se basó en una nota sobre TwoBitHistory, que ampliamos y complementamos con nuestros propios hallazgos e ilustraciones.



Si usamos dig para enviar una solicitud al DNS sobre un sitio, por ejemplo, it-grad.ru, obtenemos algo como esto:



$ dig it-grad.ru






La línea de la sección de respuesta contiene información sobre un registro de tipo A.



Echemos un vistazo más de cerca al campo "IN". Quizás alguien piense que "IN" es una excusa: it-grad.ru IN (dentro) A y tiene una dirección IP de 212.116.122.3. De hecho, "IN" significa "Internet". Esta es la clase de grabación .



Surge una pregunta natural: ¿qué otras opciones puede haber? ¿Cómo puede acceder a un host que no está en Internet? Puede parecer que IN es generalmente el único significado que tiene sentido en el mundo moderno. Además, si "rompe" el mismo it-grad.ru e indica explícitamente que desea obtener un registro con una clase que no sea IN, el servidor DNS devolverá un error. Hagamos otra solicitud y veamos qué sucede al especificar explícitamente una clase. Por ejemplo, HS (Hesoid). El servidor devolverá el estado de SERVFAIL.



$ dig -c HS it-grad.ru






Las clases distintas a IN prácticamente no se usan en el mundo moderno. Pero esto no significa en absoluto que no existan: por ejemplo, hay HS o CH. HS está reservado para su uso en el Servicio de Información Hesoide, que lleva el nombre de un antiguo poeta griego. Pero la clase CH está reservada para las necesidades del héroe del artículo, Chaosnet. Por el momento, solo tiene un valor histórico y conmemorativo.





Otras clases de DNS



Hoy, el mundo pertenece a TCP / IP. Este protocolo (junto con UDP) gestiona la gran mayoría de las conexiones de red. Pero, como puede ver, en algunos lugares todavía hay rastros de otro sistema desaparecido hace mucho tiempo, y esto es notable a su manera. ¿Qué es el caosnet? ¿Qué fue y por quién fue utilizado? ¿Por qué se hundió en el olvido? Vamos a resolverlo.



Todo comenzó en el MIT.



Chaosnet fue creado por el personal del Laboratorio de Inteligencia Artificial del MIT en la década de 1970. Fue un producto "complementario" del diseño de una máquina que podía ejecutar el lenguaje de programación Lisp de manera más eficiente que las computadoras de uso general.



Lisp es una creación del profesor del MIT y ganador del Premio Turing de 1971, John McCarthy . Es el fundador de la programación funcional y el autor del término (condenado en algunos círculos) "inteligencia artificial". El





propio John McCarthy



La primera versión de Lisp se considera el intérprete de 1958 para el IBM 704. De hecho, es uno de los lenguajes de programación actuales más antiguos junto con Fortran.



La primera mención pública de Lisp (versión 1) se remonta a 1960. Y para 1962, una versión avanzada y mejorada 1.5 estaba lista. Lisp incluyó una tonelada de herramientas y funciones que se encuentran en la gran mayoría de los lenguajes de programación modernos.



Fue el primer idioma en implementar la recolección de basura y la administración automática de memoria. Ganó una inmensa popularidad y amor entre los programadores que trabajan en IA. Este es solo un ejemplo famoso: SHRDLU, un programa de Terry Winograd que permitió a una computadora hablar en lenguaje natural y resolver problemas lógicos simples. Fue escrito en DEC PDP-6 usando los lenguajes Lisp y Micro Planner.





Ejemplo que ilustra SHRDLU



El único problema de Lisp era su velocidad. Las operaciones más simples tomaron el doble de tiempo que en otros idiomas, porque las variables se verificaron dos veces, tanto en tiempo de ejecución como en tiempo de compilación. El recolector de basura funcionó durante más de un segundo en el entonces IBM 7090, que estaba a disposición del MIT. El problema de rendimiento era extremadamente grave: los programadores de IA construyeron sistemas que interactuaban con el usuario en tiempo real.



A fines de la década de 1970, se decidió construir una computadora especial para Lisp, teniendo en cuenta todas las características del lenguaje. La computadora tenía que tener más memoria y un conjunto compacto de instrucciones adecuadas para Lisp. Se suponía que se utilizaría un circuito eléctrico independiente para la verificación de tipo, y esto aceleraría enormemente el código. Otra peculiaridad de las máquinas Lisp era que no podía tratarse ninguna división del tiempo del procesador: los programas ambiciosos usaban todos los recursos de la computadora sin dejar rastro. A cada usuario se le "asignó" una unidad de procesamiento central separada. Así es como los empleados de Lisp Machine Group describieron las perspectivas de trabajar con una computadora de este tipo:

Lisp Machine — . , . , . , , . . , , , , , .
Por supuesto, el término "computadora personal" en relación con las máquinas Lisp se usa en un sentido ligeramente diferente al que estamos acostumbrados ahora.





Máquina Lisp





Foto promocional del terminal



Se suponía que los usuarios no trabajarían directamente con una computadora, sino con terminales especiales. Cada usuario recibirá energía dedicada, y la computadora misma estará en la sala de computadoras, para no molestar a toda la oficina con los sonidos de los cálculos. Los procesadores tendrán acceso al sistema de archivos y dispositivos periféricos como impresoras a través de una LAN de "control totalmente distribuido" de alta velocidad. Así nació Chaosnet. Sus creadores son Thomas Knight ( biografía en ruso ) y Jack Holloway.



Chaosnet era tanto un estándar de hierro como un protocolo de software. En términos de equipo, este estándar era similar a Ethernet, y el protocolo de software finalmente funcionó a través de Ethernet. Pero a diferencia de TCP / IP, se suponía que debía administrar redes exclusivamente locales. Uno de los empleados del Laboratorio de Inteligencia Artificial del MIT dijo que al desarrollar Chaosnet, el enfoque principal era escribir un protocolo que, dentro de una red pequeña, mostrara mejores resultados que sus "competidores".



La velocidad era crítica porque Chaosnet era el enlace intermedio entre el procesador Lisp y el sistema de archivos. Los retrasos en la red afectarían la velocidad de las operaciones básicas. Para garantizar el máximo rendimiento, se tomó como base el Programa de control de red, que luego se utilizó en Arpanet (y se mejoró aún más). Chaosnet, al igual que el TCP / IP moderno, utilizaba el reconocimiento de paquetes de mensajes, lo que reducía el número total de paquetes transmitidos en un 30-50%.



Chaosnet también podría funcionar sin algoritmos de enrutamiento, ya que la mayoría de los hosts en la red Lisp estaban conectados por un solo cable corto (CATV, cable coaxial). David Moon, del Lisp Machine Group, escribió que el esquema de enrutamiento de Chaosnet "se basa en el supuesto de que la red es lo suficientemente simple como para que solo haya unos pocos caminos cortos. Los esquemas complejos no son necesarios aquí ". Como resultado, el programa de control Chaosnet pesaba la mitad que el programa de control de red Arpanet.



El protocolo Chaosnet también tenía otras características. Entonces, la longitud de la dirección era de solo 16 bits, que es la mitad de la longitud de la dirección IPv4. Un enfoque perfectamente razonable, considerando que Chaosnet estaba destinado solo a redes locales. Los primeros 8 bits apuntaban a la subred, el segundo a un host específico.



Además, Chaosnet no usó números de puerto. En cambio, un proceso que "quería" conectarse a otro proceso en una computadora diferente hizo una solicitud que especificaba el "nombre de contacto" del objetivo. A menudo, el nombre de un servicio específico. Por ejemplo, un host podría intentar conectarse a otro host utilizando el nombre de contacto TELNET. Esto es muy similar a TCP: por ejemplo, se puede acceder al puerto 80 "por nombre" HTTP.



La clase CH DNS, Chaosnet, se agregó a DNS en 1986. Reemplazó a otra clase, CSNET (Computer Science Network). Ahora es difícil averiguar exactamente por qué Chaosnet obtuvo su lugar en el DNS. Hubo otras familias de protocolos que por alguna razón no se agregaron. Por ejemplo, Paul Mockapetris, uno de los principales arquitectos de DNS, escribió que originalmente tenía la intención de incluir la clase de protocolo de red Xerox en el sistema de nombres de dominio. Pero por razones desconocidas, esto no sucedió. Y Chaosnet puede haberse agregado solo porque la mayor parte del trabajo en Arpanet e Internet se realizó en BBN Technologies. Los empleados de esta empresa estaban estrechamente asociados con el MIT y probablemente escucharon mucho sobre Chaosnet.



Las máquinas Lisp fueron inicialmente un éxito comercial vendido por Symbolics y Lisp Machines Inc. Pero con el tiempo, la necesidad de ellos ha desaparecido. Fueron reemplazados por microcomputadoras, que podrían funcionar con Lisp, pero sin circuitos especiales. Luego, TCP / IP entró en escena, en el que se corrigieron las deficiencias de Arpanet, y Chaosnet perdió su relevancia.



Fantasma del pasado



Desafortunadamente, no hay tanta información sobre Chaosnet en este momento. RFC 675, que es esencialmente la primera versión de TCP / IP, se publicó en 1974. Chaosnet apareció un año después. TCP / IP finalmente conquistó el mundo y Chaosnet no se desarrolló. Es posible que algunas prácticas de Chaosnet hayan influido en el desarrollo de TCP / IP, pero no hay evidencia que respalde o refute esto. Dato curioso: la versión original del Manifiesto GNU menciona la compatibilidad con el protocolo Chaosnet.



Diversas implementaciones de Chaosnet y enlaces interesantes:





El único rastro notable de Chaosnet en la red mundial es la clase CH DNS. No es más que el espectro de un protocolo de red alternativo en el mundo victorioso de TCP / IP. Un artefacto divertido de la arqueología digital. Pero es un recordatorio "vivo" de que Internet no apareció de la noche a la mañana y que TCP / IP no es la única forma de conectar computadoras entre sí.



También es una razón para pensar en el hecho de que "Internet" está lejos de ser la palabra más genial que podría usarse para bautizar nuestro sistema de comunicación global.



All Articles