This site is about the communication protocol Chaosnet. This page gives some background information.
See also other pages for
Chaosnet was developed at MIT around 1973-1975, for LISP machines (personal workstations developed to run LISP). It was a local network protocol (about 1-2 km cable lengths), without central control (thus “chaos”). It was “cheap, efficient and fast”: ca 10 times the speed of ARPAnet, or 30000 characters per second (or “double this in some favorable cases”). It was developed around the same time as Ethernet and TCP (or just before).
It was a full protocol stack, and consisted of a physical+link layer protocol similar to Ethernet (broadcast bus, coax cable, CSMA/CD+CA), a network-layer protocol (corresponding to IP), transport layer protocols (corresponding to UDP and TCP), and application layer protocols. 1)
The physical+link layer was later replaced by Ethernet (see below).
Chaosnet was developed at MIT, where it was initially implemented for LISP machines and ITS, then also for TOPS-20, VMS, Unix, and MINITS. At MIT, there were approximately N computers and M subnets in use in YYYY.
The main spread in the rest of the world was through LISP machines: the original MIT machines, the LMI and Symbolics machines, and the Texas Instruments machines. Only a few other types of computers ran Chaosnet, but it was apparently popular enough that Cisco implemented it in their routers.
Very few of the machines that originally supported Chaosnet have survived to this day, but some remain; also the Symbolics Open Genera (a port of the Symbolics LISP machine system to modern hardware) supports Chaosnet over Ethernet.
However, around 2004-2005, Chaosnet support was developed for hardware emulators used in ITS and LISP machines. Motivating factors included historical accuracy and functionality. Also in 2005, bind9, the popular DNS server, was patched to support Chaosnet data (it was described in the original RFC, and bind9 now supports it out-of-the-box).
For the klh10 emulator, an implementation of the CH11 hardware interface was done (around 2004) which transports Chaosnet packets in UDP datagrams, and where mappings could be defined between Chaosnet host addresses and IP addresses (and UDP ports). For the CADR emulator usim by Brad Parker, an implementation over “unix” sockets was included, including a file server, but which only allowed local communication on the host system.
Around 2004-2005, a simple program was written to bridge between the UDP encapsulation and Chaosnet over Ethernet (to communicate with a real Symbolics 3640 LISP machine without TCP/IP) and another to bridge between the UDP encapsulation and the unix sockets.
In 2016, Lars Brinkhoff started the ITS resurrection project which made ITS more wide-spread, and in 2017, Daniel Seagraves released ld, an emulator of the LMI Lambda lisp machine, which supports Chaosnet over Ethernet. (There is also Chaosnet support for 4.1BSD and MINITS.)
With more systems in more places, the need for a more complex Chaosnet bridge program arose, which integrated the previous functionalitites, with routing between them, and also gradually added support for more link layers (encapsulation in TLS and in IPv4/IPv6). By encapsulating Chaosnet packets in modern protocols, the scope was extended from the very local network (a single host in the case of unix sockets, or a local network in the case of Ethernet) to a global Chaosnet.
In 2020, the Chaosnet transport layer (a Network Control Program or NCP) was added to the bridge program. This makes it reasonably easy to adapt existing programs to use Chaosnet, and also to write application and servers using Chaosnet. Now also modern Linux/Unix/macOS-based computers can be Chaosnet nodes, and you can log in to your ITS system using Supdup over Chaosnet.