ITS wiki

The Incompatible Timesharing System

User Tools

Site Tools


chaosnet

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
chaosnet [2017-08-17 18:17] – created victorchaosnet [2017-08-29 12:42] (current) – [Conclusion] victor
Line 2: Line 2:
 This page is about Chaosnet, the network protocol developed at MIT about 1975 for Lisp Machines. It was also implemented for TOPS-20, VAX/VMS, Unix, and of course ITS. This page is about Chaosnet, the network protocol developed at MIT about 1975 for Lisp Machines. It was also implemented for TOPS-20, VAX/VMS, Unix, and of course ITS.
  
-Read the MIT AI Memo 628: [[https://dspace.mit.edu/handle/1721.1/6353|Chaosnet]] by David A. Moon for most of the gory details.+Read the MIT AI Memo 628: [[https://dspace.mit.edu/handle/1721.1/6353|Chaosnet]] by David A. Moon for most of the gory details. See also [[https://groups.google.com/d/topic/comp.protocols.tcp-ip/AeJA1K7uA-o/discussion|comp.protocols.tcp-ip]].
  
 +Have a look at [[chaos-dns|how to add Chaosnet info to your DNS]].
 +
 +Feel free to add and correct stuff on this page!
 ===== Chaosnet link implementations ===== ===== Chaosnet link implementations =====
 **A.** The original Chaosnet was developed in 1975 at MIT, running over a coaxial cable allowing 2 (or 4?) Mb/s [source needed]. It was implemented at least on CADR Lisp Machines [first-hand experience], TOPS-20 [first-hand experience], VAX/VMS, Unix, and ITS. **A.** The original Chaosnet was developed in 1975 at MIT, running over a coaxial cable allowing 2 (or 4?) Mb/s [source needed]. It was implemented at least on CADR Lisp Machines [first-hand experience], TOPS-20 [first-hand experience], VAX/VMS, Unix, and ITS.
-The main sources would be the original MIT AIM 628, section 2. See also [[https://groups.google.com/d/topic/comp.protocols.tcp-ip/AeJA1K7uA-o/discussion|comp.protocols.tcp-ip]].+The main sources would be the original MIT AIM 628, section 2. 
  
 **B.** Later, Chaosnet was running on standard Ethernet (at 10 Mb/s and more). It was implemented at least on later Lisp Machines [LMI Lambda, Symbolics 36xx, TI Explorer, first-hand experience]. **B.** Later, Chaosnet was running on standard Ethernet (at 10 Mb/s and more). It was implemented at least on later Lisp Machines [LMI Lambda, Symbolics 36xx, TI Explorer, first-hand experience].
-The Ethernet type code is 0x0804 (see [[https://www.iana.org/assignments/ieee-802-numbers/ieee-802-numbers.xhtml|IANA]]). Main sources may be source code, but it's almost trivial given the Chaosnet frame format. See [[https://groups.google.com/d/topic/alt.folklore.computers/UfIlvc3my-Q/discussion|alt.folklore.computers]] for some discussion.+The Ethernet type code is 0x0804 (see [[https://www.iana.org/assignments/ieee-802-numbers/ieee-802-numbers.xhtml|IANA]]). Main sources of info may be source code, but it's almost trivial given the Chaosnet frame format (see MIT AIM 628). See also [[https://groups.google.com/d/topic/alt.folklore.computers/UfIlvc3my-Q/discussion|alt.folklore.computers]] for some discussion.
  
 **C.** At some point, tunnelling Chaosnet over IP was implemented by mapping Chaosnet addresses to IP addresses and using IP protocol type 0x10 [sources needed!!]. It maps a (16-bit) Chaosnet address x.y to an IP address, using the lower 16 bits, e.g. 192.168.x.y where the Chaosnet address is x.y. **C.** At some point, tunnelling Chaosnet over IP was implemented by mapping Chaosnet addresses to IP addresses and using IP protocol type 0x10 [sources needed!!]. It maps a (16-bit) Chaosnet address x.y to an IP address, using the lower 16 bits, e.g. 192.168.x.y where the Chaosnet address is x.y.
-Main source may be [[http://www.employees.org/univercd/Feb-1998/CiscoCD/cc/td/doc/product/software/ssr90/rpc_r/54048.htm|Cisco doc]], see also "Mapping an Internet Address into a Chaosnet Address" in the Symbolics Networking manual, p30.+Main source of info may be [[http://www.employees.org/univercd/Feb-1998/CiscoCD/cc/td/doc/product/software/ssr90/rpc_r/54048.htm|Cisco doc]], see also "Mapping an Internet Address into a Chaosnet Address" in the Symbolics Networking manual, p30.
  
 **D.** For the klh10 PDP-10 (KS10) emulator running ITS, a simple protocol for encapsulating Chaosnet frames in UDP was designed and implemented (see [[ch11|doc]]). It allows mapping individual Chaosnet addresses to individual IP addresses. The protocol prepends Chaosnet packets with a four-byte header (version=1, function=1, 0, 0). **D.** For the klh10 PDP-10 (KS10) emulator running ITS, a simple protocol for encapsulating Chaosnet frames in UDP was designed and implemented (see [[ch11|doc]]). It allows mapping individual Chaosnet addresses to individual IP addresses. The protocol prepends Chaosnet packets with a four-byte header (version=1, function=1, 0, 0).
Line 18: Line 21:
 **E.** For the [[http://www.unlambda.com/cadr/|usim CADR emulator]] an implementation of Chaosnet over Unix named sockets was done, e.g. allowing the CADR emulator to contact Chaosnet servers on the unix host running the emulator. A server process ("chaosd") opens a socket which forwards between client sockets in a broadcast manner. The packets are prepended by a four-byte header (MSB of length, LSB of length, 1, 0). **E.** For the [[http://www.unlambda.com/cadr/|usim CADR emulator]] an implementation of Chaosnet over Unix named sockets was done, e.g. allowing the CADR emulator to contact Chaosnet servers on the unix host running the emulator. A server process ("chaosd") opens a socket which forwards between client sockets in a broadcast manner. The packets are prepended by a four-byte header (MSB of length, LSB of length, 1, 0).
  
-Programs to "bridge" between implementations of (B) and (D) and (D) and (E) were implemented [by BV] to interconnect a Symbolics 3640 (type B) with an ITS under klh10 (type D) and a usim CADR (type E). (That has now been refined into a single bridge program between (B), (D) and (E).)+Programs to "bridge" between implementations of (B) and (D) and (D) and (E) were implemented [by BV] to interconnect a Symbolics 3640 (type B) with an ITS under klh10 (type D) and a usim CADR (type E). That has now been refined into a single bridge program between (B), (D) and (E), see the end of this page.
  
-See also http://josephoswald.nfshost.com/chaos-python/summary.html, http://josephoswald.nfshost.com/chaos-lisp/summary.html+See also Joseph Oswald's [[http://josephoswald.nfshost.com/chaos-python/summary.html|implementation of (E) and routing with (D) in Python]]and [[http://josephoswald.nfshost.com/chaos-lisp/summary.html|implementation of (D) in CommonLisp]].
 ==== Analysis ==== ==== Analysis ====
 (A) is obsolete. (A) is obsolete.
Line 47: Line 50:
 none of the standards seem widely implemented? none of the standards seem widely implemented?
  
-===== Conclusion ===== 
-To interconnect Chaosnets, the "cbridge" program was developed, building on "echaos" (bridge (B) and (D)) and "chudprt" (bridging (B) and (E)). See the source here. 
  
 One idea could be to rewrite klh10/ch11 to use real Chaosnet-over-ethernet, but klh10 often runs behind a tun interface (with only IP), so there is no direct Ethernet access. One idea could be to rewrite klh10/ch11 to use real Chaosnet-over-ethernet, but klh10 often runs behind a tun interface (with only IP), so there is no direct Ethernet access.
Line 57: Line 58:
 Another, more interesting, idea would be to hack Open Genera to use tap (so Chaos can be used). Another, more interesting, idea would be to hack Open Genera to use tap (so Chaos can be used).
  
 +===== Conclusion =====
 +To interconnect Chaosnets, the "cbridge" program was developed, building on "echaos" (bridge (B) and (D)) and "chudprt" (bridging (B) and (E)). See the source [[https://github.com/bictorv/chaosnet-bridge|here]].
 +
 +You can configure the bridge to connect subnets and/or individual hosts. 
 +Use cases could be
 +  * connecting remote Chaosnet-over-Ethernets, e.g. to communicate with  others using [[https://github.com/dseagrav/ld|LambdaDelta]] (use a Chaos-over-udp link between them).
 +  * connecting remote Chaosnet-over-unix-sockets, e.g. to communicate  with others using usim (use a Chaos-over-udp link between them).
 +  * connecting ITSes running on klh10 - rather than configuring your  klh10 to handle all other chudp hosts and iptables to forward chudp  pkts over the tun interface, keep chudp routing in the bridge  program. Adding new chudp hosts now doesn't require klh10  configuration. 
 +  * and interconnecting these three, of course!
 +
 +See also ''-READ-ME-.text'' in the source archive.
chaosnet.1502986634.txt.gz · Last modified: by victor