Table of Contents
Chaosnet
This site is about the computer communications protocol Chaosnet. This page gives some background information.
See also other pages for
- how to run Chaosnet in different environments,
- some notes about Chaosnet DNS,
- info about the Global Chaosnet,
- how to set up a local Chaosnet,
- more Chaosnet resources.
1. What is Chaosnet?
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).
2. Who used Chaosnet?
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 447 computers and 17 subnets in use in 1989 (according to SYSHST;HSTMIT 1115
).
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.
3. Who now uses Chaosnet?
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.
Today, Chaosnet can be used on (at least) the following systems (see below for more details):
- the CADR Lisp Machine with the usim emulator
- The LambdaDelta Lisp Machine emulator
- 4.1BSD Unix under the simh emulator
- The MINITS operating system under the simh emulator
- TOPS-20 (work in progress)
- VMS (work in progress)
- most linux-like operating systems (Linux, OpenBSD, macOS) using the NCP interface of the Chaosnet bridge program.
3.1 Historical developments
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. (For the latest version of the CADR emulator, see here!)
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 LambdaDelta, an emulator of the LMI Lambda lisp machine, which supports Chaosnet over Ethernet. There is also Chaosnet support for 4.1BSD and MINITS, e.g. under the SIMH emulator. Work is in progress on restoring Chaos also to TOPS-20, Multics, and VMS.
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.