| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| protocol [2021-05-23 16:57] – victor | protocol [2023-11-22 16:28] (current) – [Chaosnet protocol details] victor |
|---|
| The original spec, MIT AIM 628, is sometimes not totally clear, and partly out-of-date (e.g. for the link layer and down). What is below might perhaps not be clearer, but more succinct. The real definition is in the behaviour of the implementations - "use the source, Luke!" ((See e.g. the [[https://github.com/bictorv/chaosnet-bridge|Chaosnet bridge]], the [[https://github.com/PDP-10/its/blob/master/src/system/chaos.289|ITS implementation]], and the LISP machine implementations.)) | The original spec, MIT AIM 628, is sometimes not totally clear, and partly out-of-date (e.g. for the link layer and down). What is below might perhaps not be clearer, but more succinct. The real definition is in the behaviour of the implementations - "use the source, Luke!" ((See e.g. the [[https://github.com/bictorv/chaosnet-bridge|Chaosnet bridge]], the [[https://github.com/PDP-10/its/blob/master/src/system/chaos.289|ITS implementation]], and the LISP machine implementations.)) |
| |
| | For another list of Chaosnet protocols, see [[https://gunkies.org/wiki/List_of_Chaosnet_application_protocols|the Computer History Wiki]]. |
| ===== - Addresses and packets ===== | ===== - Addresses and packets ===== |
| |
| |
| Chaosnet addresses are independent of IP/IPv6 addresses, but can be mapped to IP/IPv6 addresses either individually, or for a whole subnet (see | Chaosnet addresses are independent of IP/IPv6 addresses, but can be mapped to IP/IPv6 addresses either individually, or for a whole subnet (see |
| [[https://docstore.mik.ua/univercd/cc/td/doc/product/software/ssr83/rpc_r/48381.htm|Cisco's implementation]], the [[http://www.fpgaretrocomputing.org/pdp10x/|PDP-10/X]] project, or [[https://github.com/bictorv/chaosnet-bridge|cbridge]]). | [[https://docstore.mik.ua/univercd/cc/td/doc/product/software/ssr83/rpc_r/48381.htm|Cisco's implementation]], the [[http://www.fpgaretrocomputing.org/pdp10x/|PDP-10/X]] project, or [[https://github.com/bictorv/chaosnet-bridge|cbridge]]). A version of TOPS-20 implemented IP encapsulation. |
| |
| Note that Chaosnet addresses where the host byte is 0xFF (which is legal by the specification) cannot be used with subnet mappings on IPv4, since they map to the broadcast address. | Note that Chaosnet addresses where the host byte is 0xFF (which is legal by the specification) cannot be used with subnet mappings on IPv4, since they map to the broadcast address. |
| (Yes, it is confusing that the [[rfc>1196|TCP protocol "finger"]] corresponds to NAME rather than to FINGER.) | (Yes, it is confusing that the [[rfc>1196|TCP protocol "finger"]] corresponds to NAME rather than to FINGER.) |
| |
| | ''LOAD'' is a simple protocol, which responds with a two-line ANSwer stating the "fair share" if you would use the remote system, and the number of users currently logged in. Example: |
| | |
| | Fair Share: 96% |
| | Users: 1. |
| ==== - Host lookup (stream) ==== | ==== - Host lookup (stream) ==== |
| ''HOSTAB'', see [[https://chaosnet.net/amber.html#Host-Table|here]], is used to look up hosts in a host table. A host name is sent to the server, which responds with attributes of the host followed by an EOF; the interaction can be repeated until the connection is closed. | ''HOSTAB'', see [[https://chaosnet.net/amber.html#Host-Table|here]], is used to look up hosts in a host table. A host name is sent to the server, which responds with attributes of the host followed by an EOF; the interaction can be repeated until the connection is closed. |
| ''DOMAIN'' is a protocol for doing look-ups in the [[rfc>1034|Domain Name System]]. It works just like the TCP version of DNS (port 53). | ''DOMAIN'' is a protocol for doing look-ups in the [[rfc>1034|Domain Name System]]. It works just like the TCP version of DNS (port 53). |
| |
| | ''DNS'' is a (non-standard) simple protocol interface to the Domain Name System, implemented by the [[https://github.com/bictorv/chaosnet-bridge|Chaosnet Bridge]]. The RFC argument is the DNS query (as plain 8-bit bytes), and the ANS contains the response. Note the size limit of Chaosnet packets (488 bytes). |
| ==== - Silly protocols (stream) ==== | ==== - Silly protocols (stream) ==== |
| |
| ==== - File transfer and disk access ==== | ==== - File transfer and disk access ==== |
| |
| ''[[https://github.com/PDP-10/its/blob/master/doc/sysdoc/chaos.file|FILE]]'' is implemented by ITS, Lisp Machines, and the Chaos-over-unix-sockets implementation. A modernised version, used by Symbolics, appears in [[rfc>1037|RFC 1037]]. | ''[[https://github.com/PDP-10/its/blob/master/doc/sysdoc/chaos.file|FILE]]'' is implemented by ITS, TOPS-20, Lisp Machines, and the Chaos-over-unix-sockets implementation. A modernised version, used by Symbolics, appears in [[rfc>1037|RFC 1037]]. |
| |
| ''[[https://github.com/PDP-10/its/blob/master/doc/sysdoc/mldev.protoc|MLDEV]]'' is used by ITS systems for general remote device access (including hard disk devices) (also over TCP). ((This protocol has enormous security problems.)) | ''[[https://github.com/PDP-10/its/blob/master/doc/sysdoc/mldev.protoc|MLDEV]]'' is used by ITS systems for general remote device access (including hard disk devices) (also over TCP). ((This protocol has enormous security problems.)) |
| |
| :TODO: | :TODO: |
| * describe LOAD, GENSYM (DB), GMSGS (DB), etc (ITS). | * describe GENSYM (DB), GMSGS (DB), etc (ITS). |
| |
| |