混沌网简史

我们决定再次踏入网络的过去。这次我们将讨论Chaosnet,这是Lisp机器在1970年代使用的一种特定的网络协议。这篇文章是基于一个音符上TwoBitHistory,这是我们扩大和补充我们自己的发现和插图。



如果我们使用dig将有关某个站点的请求(例如it-grad.ru)发送到DNS,则会得到以下内容:



$ dig it-grad.ru






答案部分行包含有关类型A记录的信息。



让我们仔细看看“ IN”字段。也许有人认为“ IN”是这样的借口:it-grad.ru IN(在A内部),其IP地址为212.116.123.3。实际上,“ IN”表示“ Internet”。这是录音课



一个自然的问题出现了:还有什么其他选择?如何访问不在Internet上的主机?似乎IN通常是现代世界中唯一有意义的含义。另外,如果您“破坏”了相同的it-grad.ru并明确指出要使用IN以外的类获取记录,则DNS服务器将返回错误。让我们提出另一个请求,看看明确指定一个类时会发生什么。例如,HS(Hesoid)。服务器将返回SERVFAIL状态。



$ dig -c HS it-grad.ru






除了IN之外,几乎没有其他在现代世界中使用。但这并不意味着它们根本不存在:例如,存在HS或CH。HS保留供Hesoid信息服务使用,该服务以古希腊诗人的名字命名。但是CH类是为满足本文英雄Chaosnet的需要而保留的。目前,它仅具有历史纪念意义。





其他DNS类别



当今,世界属于TCP / IP。该协议(与UDP一起)管理绝大多数网络连接。但是,正如您所看到的,在某些地方仍然有另一种早已消失的系统的痕迹,这以它自己的方式是非凡的。什么是混沌网?它是什么,由谁使用的?他为什么被遗忘?让我们弄清楚。



一切始于麻省理工学院



Chaosnet由1970年代的MIT人工智能实验室的工作人员创建。它是一台机器设计的“同伴”产品,与通用计算机相比,它可以更有效地运行Lisp编程语言。



Lisp是麻省理工学院教授的结晶,1971年图灵奖得主约翰麦卡锡John McCarthy)。他是函数式编程的创始人,也是“人工智能”一词(在某些圈子中被谴责)的作者。





约翰·麦卡锡本人



Lisp的最早版本被认为是1958年IBM 704的解释器。实际上,它是Fortran之外当前最古老的编程语言之一。



Lisp(版本1)首次公开提及可以追溯到1960年。到1962年,改进和改进的1.5版已经准备就绪。 Lisp包含了大量的工具和功能,这些工具和功能可以在绝大多数现代编程语言中找到。



它是实现垃圾回收和自动内存管理的第一语言。在从事AI的程序员中,他获得了极大的欢迎和喜爱。这只是一个著名的例子:SHRDLU,由Terry Winograd编写的程序,它使计算机能够用自然语言讲话并使其能够解决简单的逻辑问题。它是使用Lisp和Micro Planner语言以DEC PDP-6编写的。





举例说明SHRDLU



Lisp唯一的问题是它的速度。最简单的操作花费了其他语言两倍的时间,因为在运行时和编译时都对变量进行了双重检查。垃圾收集器在当时由MIT处理的IBM 7090上运行了超过一秒钟。性能问题非常严重:AI程序员构建了与用户实时交互的系统。



1970年代后期,考虑到语言的所有功能,决定为Lisp建造一台特殊的计算机。计算机必须具有更多的内存和适合Lisp的紧凑指令集。假定将使用独立的电路进行类型检查,这将大大加快代码的速度。 Lisp机器的另一个特点是,处理器时间的划分毫无疑问:雄心勃勃的程序毫无痕迹地使用了计算机的所有资源。每个用户都被“分配”了一个单独的中央处理单元。 Lisp Machine Group员工描述了使用这种计算机的前景:

Lisp Machine — . , . , . , , . . , , , , , .
当然,与Lisp机器相关的术语“个人计算机”在使用上与我们现在所习惯的略有不同。





Lisp机





终端机的促销照片



假定用户不会直接使用计算机,而是使用特殊的终端机。每个用户将获得专用电源,计算机本身将位于计算机室中,以免打扰整个办公室。处理器将可以通过高速“完全分布式控制” LAN访问文件系统和外围设备,例如打印机。这就是Chaosnet的诞生方式。它的创造者是托马斯·奈特俄语传记)和杰克·霍洛威。



Chaosnet既是铁标准,又是软件协议。在设备方面,该标准类似于以太网,并且软件协议最终通过以太网工作。但是与TCP / IP不同,它应该专门管理本地网络。麻省理工学院人工智能实验室的一名员工表示,在开发Chaosnet时,主要重点是编写一种协议,该协议在小型网络内将比其“竞争对手”显示更好的结果。



速度至关重要,因为Chaosnet是Lisp处理器与文件系统之间的中间链接。网络延迟会影响基本操作的速度。为了确保最佳性能,以Arpanet中使用的网络控制程序为基础(并进行了进一步改进)。像现代TCP / IP一样,Chaosnet使用消息的数据包确认,这使传输的数据包总数减少了30-50%。



Chaosnet也可以不使用路由算法,因为Lisp网络上的大多数主机都通过一条短线(CATV,同轴电缆)连接。 Lisp Machine Group的David Moon写道,Chaosnet的路由方案“基于这样的假设:网络足够简单,只有几条短路径。这里不需要复杂的方案。”结果,Chaosnet控制程序的重量是Arpanet网络控制程序的一半。



Chaosnet协议还具有其他功能。因此,地址的长度仅为16位,仅是IPv4地址的一半。考虑到Chaosnet仅用于本地网络,这是一种完全合理的方法。前8位指向子网,第二位指向特定主机。



另外,Chaosnet没有使用端口号。相反,一个“想要”连接到另一台计算机上的另一个进程的进程发出了一个请求,该请求指定了目标的“联系人姓名”。通常是特定服务的名称。例如,一台主机可能尝试使用TELNET联系人名称连接到另一台主机。这非常类似于TCP:例如,可以通过“名称” HTTP访问端口80。



CH DNS类Chaosnet在1986年被添加到DNS中。它取代了另一类CSNET(计算机科学网络)。现在很难弄清楚为什么Chaosnet在DNS中占有一席之地。还有其他协议家族由于某种原因未添加到其中。例如,DNS的主要架构师之一Paul Mockapetris写道,它最初旨在将Xerox网络协议类包含在域名系统中。但是由于未知的原因,这没有发生。并且可能仅由于在Arpanet和Internet上进行的大部分工作是在BBN Technologies上完成而添加了Chaosnet的。该公司的员工与麻省理工学院密切相关,可能听说过很多有关Chaosnet的信息。



Lisp机器最初是Symbolics和Lisp Machines Inc.出售的商业成功产品。但是随着时间的流逝,对它们的需求已经消失了。它们被微型计算机所取代,该微型计算机可与Lisp一起使用,但无需特殊电路。然后,TCP / IP出现了,其中Arpanet的缺点得以解决,Chaosnet失去了它的意义。



过去的鬼魂



不幸的是,目前关于Chaosnet的信息还很少。RFC 675本质上是TCP / IP的第一个版本,于1974年发布。一年后,Chaosnet出现了。TCP / IP最终征服了世界,Chaosnet却没有发展。某些Chaosnet做法可能会影响TCP / IP的发展,但是没有证据支持或驳斥这一点。有趣的事实:GNU宣言的原始版本提到了对Chaosnet协议的支持。



各种Chaosnet 实现和有趣的链接:





互联网上唯一显着的Chaosnet痕迹是CH DNS类。它不过是胜利的TCP / IP领域中替代网络协议的幽灵。数字考古学的一个有趣的人工制品。但这提醒人们,互联网并非一朝一夕出现的,TCP / IP并不是将计算机连接在一起的唯一方法。



这也是考虑以下事实的一个原因,即“ Internet”远不是用来命名我们的全球通信系统的最酷的词。



All Articles