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) ARPA ネットワークの Host プロトコル、フロー制御 (flow control)、メッセージ経路制御についての BBN の W. Crowther と R. Kahn との議論である。本ノートにもいくつか独創的な着想があれば幸いである。これらの着想を本稿に述べるシステムへと集約したことについては私ひとりが責任を負い、したがってシステム内のあらゆる不整合や欠陥についても私が責任を負う。
強調しておかねばならないが、本稿は ARPA コンピュータネットワークの Host プロトコルに関する BBN の公式見解を表すものではない。