1. 引言
如果你正致力于开发计算机网络内部的通信方法, 你可以从事两种活动之一。你可以与他人合作, 真正去构建一个计算机网络, 受影响, 或许也影响你的同事。或者, 你可以就理想网络中事情应当如何做, 构建出一种智识上的立场 —— 它比你正在帮助构建的那个网络更好 —— 然后把这个立场提交给未来网络的设计者研究。作者过去两年一直从事第一种活动。本文则源于最近对第二种活动的参与。
"资源共享计算机网络被定义为这样一组自主、独立的计算机系统: 它们互连在一起, 使每个计算机系统都能像平常调用子程序那样, 使用其他所有计算机系统的全部资源。" 这种网络的定义以及构建此种网络的可取性, 由 Roberts 和 Wessler 在 [9] 中作了阐述。
资源共享这一行为本身可以有两种做法: 在网络中所有计算机系统对之间以临时 (ad hoc) 方式进行; 或者依照一套系统化、网络范围的标准进行。本文提出一种可能的网络范围资源共享系统。
我认为, 把资源看作与进程相关联<1>, 并且只能通过同这些进程通信才能获得, 是很自然的。因此, 我把资源共享的根本问题视为进程间通信问题。我也赞同 Carr、Crocker 和 Cerf [2] 的观点: 网络上的进程间通信是多道程序设计环境中一般进程间通信的一个特例。
这些观点促使我做了分两部分的研究。第一部分构建起一组操作, 它们使进程间通信能够在单个分时系统内部进行。这组操作舍弃了当前分时系统中使用的许多进程间通信技术 —— 例如通过共享内存通信 —— 转而依靠那些可以轻易推广、从而允许远程进程之间通信的技术。研究的第二部分给出这样一种推广。文中还讨论了这一推广后的系统在 ARPA 计算机网络 [9] 上的应用。
本文所详述的想法来自许多来源。特别有影响的是 —— 1) 由 UCLA 的 S. Crocker 和 Bolt Beranek and Newman Inc. (BBN) 的 W. Crowther 为 ARPA 网络勾勒的 Host 协议早期草图; 2) Ackerman 和 Plummer 关于 MIT PDP-1 分时系统的论文 [1]; 以及 3) 与 BBN 的 W. Crowther 和 R. Kahn 关于 ARPA 网络的 Host 协议、流控 (flow control) 与消息路由的讨论。希望本札记中也有一些原创想法。把这些想法汇集成本文所述的系统, 由我一人负责; 因此系统中任何不一致或缺陷也由我负责。
必须强调, 本文并不代表 BBN 在 ARPA 计算机网络 Host 协议上的官方立场。