A brief history of Chaosnet

We decided to make another voyage into the past of networking. This time we'll talk about Chaosnet, a specific networking protocol that was used in the 1970s by Lisp machines. The article was based on a note on TwoBitHistory, which we have expanded and supplemented with our own findings and illustrations.



If we use dig to send a request to the DNS about a site, for example, it-grad.ru, we get something like this:



$ dig it-grad.ru






The Answer Section line contains information about a record of type A.



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 212.116.122.3. In fact, "IN" means "Internet". This is the recording class .



A natural question arises: what other options can there be? How can you 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" the same it-grad.ru and explicitly indicate that you want to get a record with a class other than IN, the DNS server will return an error. Let's make another request and see what happens when explicitly specifying a class. For example, HS (Hesoid). The server will return SERVFAIL status.



$ dig -c HS it-grad.ru






Classes other than IN are practically not used in the modern world. But this does not mean at all that they do not exist: for example, there are HS or CH. HS is reserved for use in the Hesoid Information Service, named after an ancient Greek poet. But the CH class is reserved for the needs of the hero of the article, Chaosnet. At the moment, it is only of historical, memorial value.





Other DNS Classes



Today, the world belongs to TCP / IP. This protocol (together with UDP) manages the vast majority of network connections. But, as you can see, in some places there are still traces of another, long-disappeared system, and this is remarkable in its own way. What is Chaosnet? What was it and by whom was it used? Why did he sink into oblivion? Let's figure it out.



It all started at MIT



Chaosnet was created by the staff of the MIT Artificial Intelligence Lab in the 1970s. It was a "companion" product of the design of a machine that could run 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 (condemned in some circles) "artificial intelligence".





John McCarthy himself



The earliest version of Lisp is considered to be the 1958 interpreter for the IBM 704. In fact, it is one of the oldest current programming languages ​​alongside Fortran.



The first public mention of Lisp (version 1) dates back to 1960. And by 1962, an advanced and improved version 1.5 was ready. Lisp included a ton of tools and functions that are found in the vast majority of modern programming languages.



It was the first language to implement garbage collection and automatic memory management. He gained immense popularity and love among the programmers working on AI. Here's just one famous example: SHRDLU, a program by Terry Winograd that allowed a computer to speak in natural language and make it solve simple logic problems. It was written in DEC PDP-6 using Lisp and Micro Planner languages.





Example illustrating SHRDLU



Lisp's only problem was its speed. The simplest operations took twice as long as in other languages, because the variables were double checked, both at runtime and at compile time. The garbage collector ran for over a second on the then IBM 7090, which was at MIT's disposal. 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 had to have more memory and a compact set of instructions suitable for Lisp. It was assumed that an independent electrical circuit would be used for type checking, and this would greatly speed up the code. Another peculiarity of Lisp machines was that there could be no question of any division of processor time: ambitious programs used all the computer's resources without a trace. Each user was “assigned” a separate central processing unit. Here's how Lisp Machine Group employees described the prospects for working with such a computer:

Lisp Machine — . , . , . , , . . , , , , , .
Of course, the term "personal computer" in relation to Lisp machines is used in a slightly different sense than we are accustomed to now.





Lisp machine





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 dedicated power, and the computer itself will be in the computer room, so as not to bother the whole office with the sounds of calculations. The processors will have access to the file system and peripheral devices such as printers via a high-speed "fully distributed control" LAN. This is how Chaosnet was born. 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, it was supposed to manage exclusively local networks. One of the employees of the MIT Artificial Intelligence Lab said that when developing Chaosnet, the main focus was on writing a protocol that, within a small network, would show better results than its "competitors".



Speed ​​was critical because Chaosnet was the intermediate link between the Lisp processor and the file system. Network delays 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 further improved). Chaosnet, like modern TCP / IP, used packet acknowledgments of messages, which reduced the total number of transmitted packets by 30-50%.



Chaosnet could also do without routing algorithms, since most of the hosts on the Lisp network were connected by a single short wire (CATV, coaxial cable). David Moon of the Lisp Machine Group wrote that Chaosnet's routing scheme “is based on the assumption that the network is simple enough that there are only a few short paths. Complex schemes are not needed here. " As a result, the Chaosnet control program weighed half as much as the Arpanet Network Control Program.



The Chaosnet protocol had other features as well. So, the length of the address was only 16 bits, which is half the length of the IPv4 address. A perfectly reasonable approach, considering that Chaosnet was intended only for local networks. The first 8 bits pointed to the subnet, the second to a specific host.



Also Chaosnet did not use port numbers. Instead, a process that “wanted” to connect to another process on a different computer made a request that specified the “contact name” of the target. Often the name of a specific 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 DNS in 1986. It replaced another class, CSNET (Computer Science Network). Now it's hard to figure out exactly why Chaosnet got its place in the DNS. There were other families of protocols that for some reason were not added to it. For example, Paul Mockapetris, one of the main architects of DNS, 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 only 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.



Lisp machines were initially a commercial success sold by Symbolics and Lisp Machines Inc. But over time, the need for them has disappeared. They were replaced by microcomputers, which could work with Lisp, but without special circuits. Then TCP / IP came on the scene, in which the shortcomings of Arpanet were fixed, and Chaosnet lost its relevance.



Ghost from the past



Unfortunately, there is not so 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, and Chaosnet did not develop. It is possible that some Chaosnet practices influenced the development of TCP / IP, but there is no evidence to support or refute this. Fun fact: The original version of the GNU Manifesto mentions support for the Chaosnet protocol.



Various Chaosnet implementations and interesting links:





The only noticeable trace of Chaosnet on the world wide web is the CH DNS class. It is nothing more than the specter of an alternative network protocol in the world of victorious TCP / IP. A 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 together.



It is also a reason to think about the fact that "Internet" is far from the coolest word that could be used to christen our global communication system.



All Articles