Difference between revisions of "Chaosnet"

From Computer History Wiki
Jump to: navigation, search
(Protocol implementations: Linux, yes - here.)
(Protocol implementations: It's a no for now.)
Line 56: Line 56:
 
| [[MagicSix]] || No || - || -
 
| [[MagicSix]] || No || - || -
 
|-
 
|-
| [[C Gateway]] - router only || Yes || Yes? || No?
+
| [[C Gateway]] - router only || Yes || No || No
 
|-
 
|-
 
| [https://github.com/bictorv/chaosnet-bridge Chaosnet Bridge] || Yes || Yes || Yes
 
| [https://github.com/bictorv/chaosnet-bridge Chaosnet Bridge] || Yes || Yes || Yes

Revision as of 19:03, 18 September 2023

Chaosnet is the name for both an internetworking protocol family, and an early LAN technology, both invented at the MIT AI Laboratory; the latter was the LAN on which the protocol first ran.

The LAN was a CSMA-CD system modeled on the Xerox PARC 3 megabit/second Experimental Ethernet, running over cable TV coaxial cable (using standard CATV connectors to connect the transceivers; not vampire taps, as on the Experimental Ethernet).

The protocol was later made to run over standard 10 megabit/second Ethernet, which largely supplanted the Chaosnet hardware. (On Ethernet, the Address Resolution Protocol is required to provide mappings from 16-bit Chaos addresses to the 48-bit addresses used by Ethernet.)

The protocol provided a reliable byte stream service, but also had a datagram mode.

History

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”: circa 10 times the speed of the ARPANET, or 30000 characters per second (or “double this in some favorable cases”)[1].

Chaosnet was initially called CAIOSnet.

Encapsulation

Historically, the protocol ran only directly on LANs. On hardware Chaosnet, no encapsulation was used. On Ethernet, protocol 0x0804 was allocated for carriage of Chaosnet protocol traffic.

In addition to the Ethernet implementations described above, several encapsulations have been developed. The standard one is using protocol 16 (decimal) on the Internet Protocol - this was implemented e.g in TOPS-20 and in Cisco routers [2].

Currently, Chaosnet is encapsulated also in:

  • Unix domain sockets (e.g. for the CADR emulator)
  • UDP (originally developed for KLH10)
  • TLS over TCP/IP (the preferred encapsulation across the Internet, see [3])

There is a bridge/router that understands all these, including Ethernet and IP, written by Bjorn Victor. It also has an API (a "Network Control Program") providing Chaosnet for modern computers.

Protocol implementations

This table lists both historical and current implementations, along with preservation status, whether code is publicly available, and whether it's currently possible to run it.

Implementation Preserved Public Running
LISP machines Yes Yes Yes
ITS Yes Yes Yes
TOPS-20 Yes Partially Work underway
FOONEX Yes Yes No
VAX/VMS Yes No No
BSD Unix Yes Yes Yes
MINITS Yes Yes Yes
NSWIT Yes No No
PDP-11 Unix V7 No - -
Unix V8 Yes Yes No
MagicSix No - -
C Gateway - router only Yes No No
Chaosnet Bridge Yes Yes Yes
Oswalds's Python and Lisp implementations Yes Yes Yes?
Linux Yes Yes No?

Hardware, and simulations

External links

  • AI memo 628 - Includes chapters on ITS, TOPS-20, Lisp Machine, and Unix implementations.
  • SYSDOC;CHAORD > - Initial design
  • MOON;AMBER > - Another Moon document, early version of AI Memo 628.
  • Chaosnet - Detailed descriptions of both the hardware system, and the protocol(s)
  • CHAOS; - hardware interface designs, etc.
    • PDP10 CHAOS - notes on the PDP-10 I/O bus interface
    • CHAOS FILE - Chaosnet FILE protocol
    • CHAOS;CHAOS PLANS - interesting details of the physical installation at MIT, plans for building ore boards, etc
  • Chaosnet wiki - central site for a global emulated Chaosnet, also with descriptions of packet formats and (application) protocol details.