A Brief History of Chaosnet
If, using dig, we send to DNS a query about some site, for example, it-grad.ru, we get something like this:
$ dig it-grad.ru
The Answer Section line contains information about a type A record.
Let's take a closer look at the “IN” field. Perhaps someone thinks that “IN” is such an excuse: it-grad.ru IN (inside) A and has an IP address of 126.96.36.199. In fact, “IN” means “Internet”. This is the post class .
A logical question arises: what, in fact, can there be any other options here? How can I access a host that is not on the Internet? It may seem that IN is generally the only meaning that makes sense in the modern world. In addition, if you “break through” the same it-grad.ru and explicitly indicate that you want to receive a record with a class other than IN, the DNS server will return an error. Let's make another request and see what the explicit class reference will lead to. For example, HS (Hesoid). The server will return the status of SERVFAIL.
$ dig -c HS it-grad.ru
Classes other than IN are practically not used in the modern world. But this does not mean that they do not exist: for example, there are HS or CH. HS is reserved for use in the Hesoid information service, named after the ancient Greek poet. But the CH class is reserved for the needs of the hero of the article, Chaosnet. At the moment, it is of historical or memorial value.
Other DNS Classes
Today the world belongs to TCP/IP. This protocol (together with UDP) controls the overwhelming number of network connections. But, as you can see, in some places there are still traces of another, long-gone system, and this is wonderful in its own way. What is Chaosnet? What was it and who was used? Why did he sink into oblivion? Let's figure it out.
It all started at MIT
Chaosnet was created by the MIT Artificial Intelligence Lab in the 1970s. It was a “companion” product of a machine project that could work in the Lisp programming language more efficiently than general-purpose computers.
Lisp is the brainchild of MIT professor and 1971 Turing Prize winner John McCarthy . He is the founder of functional programming and the author of the term (censured in some circles) “artificial intelligence.”
John McCarthy in person
The 1958 interpreter for IBM 704 is considered to be the earliest version of Lisp. In fact, it is one of the oldest relevant programming languages along with Fortran.
The first public mention of Lisp (version 1) dates from the 1960s. And by 1962, an advanced and improved version 1.5 was ready. Lisp included a lot of tools and functions that are present in the vast majority of modern programming languages.
This was the first language in which the garbage collection system and automatic memory management were implemented. He gained immense popularity and love among AI programmers. Here is just one of the well-known examples: SHRDLU, a Terry Vinograd program that allowed you to access a computer in a natural language and make it solve simple logical problems.It was written in DEC PDP-6 using the Lisp and Micro Planner languages.
Example illustrating SHRDLU
Lisp's only problem was its speed. The simplest operations took twice as much time as in other languages, since the variables passed a double check: both during execution and at the compilation stage. The garbage collector worked for more than a second on the then IBM 7090, which was at the disposal of MIT. The performance problem was extremely acute: AI programmers built systems that interacted with the user in real time.
In the late 1970s, it was decided to build a special computer for Lisp, taking into account all the features of the language. The computer should have had more memory and a compact set of instructions suitable for Lisp. It was assumed that a separate electric circuit will be used for type checking, and this will speed up the code many times. Another feature of Lisp-machines was that there was no question of any separation of processor time: ambitious programs used all the resources of the computer without a trace. Each user was "assigned" a separate central processor. Here's how Lisp Machine Group employees described the prospects for working with such a computer:
Lisp Machine is a personal computer. This means that the processor and main memory are not shared between users. The system consists of a pool of processors, each of which has its own main memory and its own disk. When a user logs in, a processor is assigned to him and he exclusively uses it during the session. When you exit the system, the processor returns to the pool and can be used by the next person. Thus, there is no competition for memory, and the pages that the user often refers to remain in the kernel, and the overhead is significantly reduced.Of course, the concept of "personal computer" in relation to Lisp machines is used in a slightly different meaning than we are used now.
Promotional photo of the terminal
It was assumed that users would not work directly with a computer, but with special terminals. Each user will receive the allocated power, and the computer itself will be in the engine room, so as not to bother the entire office with the sounds of computing. Processors will have access to the file system and peripheral devices, such as printers, through a “fully distributed control” high-speed LAN. So Chaosnet appeared. Its creators are Thomas Knight ( biography in Russian ) and Jack Holloway.
Chaosnet was both an iron standard and a software protocol. In terms of equipment, this standard was similar to Ethernet, and the software protocol ultimately worked over Ethernet. But unlike TCP/IP, management was supposed to be exclusively local area networks. One of the employees of MIT Artificial Intelligence Lab said that during the development of Chaosnet, the main focus was on writing a protocol that, within a small network, would show better results than its "competitors."
Speed was crucial because Chaosnet was an intermediary between the Lisp processor and the file system. Network latency would affect the speed of basic operations. To ensure maximum performance, the Network Control Program, which was then used in Arpanet, was taken as a basis (and subsequently finalized). Chaosnet, like modern TCP/IP, used packet acknowledgment messages, which reduced the total number of forwarded packets by 30-50%.
Chaosnet could also do without routing algorithms, since most of the hosts on the Lisp machine network were connected by one short wire (CATV, coaxial cable). David Moon, a member of the Lisp Machine Group, wrote that Chaosnet’s routing scheme “is based on the assumption that the network is fairly simple and has only a few short paths. Complex schemes are not needed here. ” As a result, the Chaosnet control program weighed half as much as the Network Control Program for Arpanet.
The Chaosnet protocol had other features. So, the address length was only 16 bits, which is half the length of the IPv4 address. Quite a reasonable approach, given that Chaosnet was intended only for local networks. The first 8 bits pointed to the subnet, the second to the specific host.
Also, Chaosnet did not use port numbers. Instead, a process that “wanted” to connect to another process on another computer made a request that indicated the “contact name” of the target. Often, the name of a particular service. For example, one host might try to connect to another host using the TELNET contact name. This is very similar to TCP: for example, port 80 can be accessed "by name" HTTP.
The CH DNS class, Chaosnet, was added to the DNS in 1986. He replaced another class, CSNET (Computer Science Network). Now it’s hard to find out why Chaosnet got its place in the DNS. There were other protocol families that for some reason were not added to it. For example, Paul Mockapetris, one of the chief DNS architects, wrote that it was originally intended to include the Xerox network protocol class in the domain name system. But for unknown reasons this did not happen. And Chaosnet may have been added just because most of the work on Arpanet and the Internet was done at BBN Technologies. The employees of this company were closely associated with MIT and probably heard a lot about Chaosnet.
Initially, Lisp machines were a commercial success and were sold by Symbolics and Lisp Machines Inc. But over time, the need for them has disappeared. They were replaced by microcomputers, which were able to work with Lisp, but without special circuits. Then TCP/IP entered the scene, in which Arpanet flaws were fixed, and Chaosnet lost its relevance.
The ghost of the past
Unfortunately, there is not much information about Chaosnet right now. RFC 675, which is essentially the first version of TCP/IP, was published in 1974. Chaosnet appeared a year later. TCP/IP eventually conquered the world, but Chaosnet did not receive development. It is likely that some Chaosnet practices have influenced the development of TCP/IP, but there is no evidence to support or deny this. Fun Fact: The original version of the GNU Manifesto mentions support for the Chaosnet protocol.
Various implementations Chaosnet and interesting links:
The only notable trace of Chaosnet on the World Wide Web is the CH DNS class. This is nothing more than the ghost of an alternative network protocol in the world of victorious TCP/IP. Funny artifact of digital archeology. But it is a “living" reminder that the Internet did not appear overnight, and TCP/IP is not the only way to connect computers to each other.
This is also an occasion to reflect on the fact that the “Internet” is far from the coolest word that could be called our global communication system.