开发者生态
morning
混沌网 (1981)
2026-06-15
1 阅读
RGBCube
3 软件协议-世界观 ¶ Chaosnet 基本软件协议的目的是允许不同机器上的进程之间进行高速通信,并且不存在未检测到的传输错误。现实环境中文件传输的速度与廉价的磁带驱动器相当(每秒 30000 个字符,大约是阿帕网速度的 10 倍)。在一些有利的情况下,我们实际上得到了大约两倍的结果。为了达到这种速度,设计出瓶颈非常重要,例如在阿帕网中发现的瓶颈,例如在多个连接之间共享的控制链路以及在发送下一条消息之前需要确认每条消息。为了可靠性并允许普通计算机系统使用该协议,该协议必须简单。完整的 Chaosnet 网络控制程序的大小大约是同一台机器上的 Arpanet NCP 的一半,并且该协议允许低性能实现省略一些功能。单片机有一个最小的实现。连接 联系人姓名 地址和索引 数据包编号 数据包 数据格式 路由流程和错误控制 3.1 连接 ¶ Chaosnet 提供的主要服务是两个用户进程之间的连接。这是一个全双工可靠的数据包传输通道。网络承诺绝不乱码、丢失、重复或重新排序数据包;如果发生严重错误,它可能会完全中断连接,并通知两个用户进程。用户程序可以按照数据包进行处理,也可以忽略数据包边界并将连接视为两个 8 位或 16 位字节的单向流。在连接设施之上,“用户”程序构建其他设施,例如文件访问、交互式终端连接以及其他字节大小(例如 36 位)的数据。通过连接传输的数据包或字节的含义由所使用的特定高层协议定义。除了可靠的通信之外,该协议还提供流量控制,包括潜在通信者可以相互联系的方式(称为联系或会合),并提供各种网络维护和内务管理设施。这些稍后再讨论。 3.2 联系人名称 ¶ 当第一次建立连接时,两个通信进程需要相互联系。此外,在通常的用户/服务器情况下,服务器进程事先并不存在,需要创建并使其执行适当的程序。我们选择以不对称的方式实现联系。 (一旦建立了连接,一切都是完全对称的。)一个进程被指定为用户,另一个进程被指定为服务器。服务器有一些它监听的联系人姓名。用户进程请求其本地操作系统将其连接到服务器,并指定服务器的网络节点和联系人姓名。本地操作系统向远程操作系统发送一条消息(连接请求),远程操作系统检查联系人姓名并创建与侦听进程的连接、创建新的服务器进程并连接到它,或者拒绝该请求。自动发现连接到哪个主机以获得特定服务是更高级别协议和进一步研究的主题。 Chaosnet 不处理它。一旦建立连接,就不再需要联系人姓名,并且会被丢弃。事实上,联系人姓名通常只是服务的名称(例如“TELNET”),并且多个用户应该能够同时连接到该服务的单独实例,因此联系人姓名必须是可重用的。在两个已经相互了解的现有进程想要建立连接的情况下,我们任意指定一个为监听者(服务器),另一个为请求者(用户)。侦听器以某种方式生成“唯一”联系人姓名,以某种方式将其传达给请求者,并侦听它。请求者请求连接到该联系人姓名并建立连接。在已连接的两个进程之间建立第二个连接的最常见情况下,第一个连接的索引号(见下文)可以用作唯一的联系人名称。联系人姓名仅限于大写字母、数字和 ASCII 标点符号字符串。联系人名称的最大长度仅受数据包大小的限制,尽管在 ITS 主机上,自动启动的服务器的名称被文件系统限制为六个字符。有关如何建立连接的完整详细信息,请参阅连接建立。 3.3 地址和索引 网络上的每个节点(或主机)都由一个地址来标识,它是一个 16 位数字。这些地址用于数据包的路由。有一个表(系统主机表,SYSBIN;HOSTS2,对于 ITS)