Zum Hauptinhalt springen

1. Einleitung

Wer Verfahren der Kommunikation innerhalb eines Computernetzes entwickeln will, kann sich mit einer von zwei Tätigkeiten befassen. Man kann mit anderen zusammenarbeiten und tatsächlich ein Computernetz aufbauen, dabei beeinflusst werden und vielleicht die Kollegen beeinflussen. Oder man kann eine gedankliche Position dazu aufbauen, wie die Dinge in einem idealen Netz gehandhabt werden sollten - besser als das Netz, an dessen Aufbau man mitwirkt -, und diese Position dann den Entwerfern künftiger Netze zur Prüfung vorlegen. Der Verfasser hat die vergangenen zwei Jahre mit der ersten Tätigkeit verbracht. Diese Arbeit entstand aus einer kürzlichen Befassung mit der zweiten Tätigkeit.

"Ein Computernetz mit Ressourcenteilung ist definiert als eine Menge autonomer, unabhängiger Computersysteme, die so miteinander verbunden sind, dass jedes Computersystem alle Ressourcen der anderen Computersysteme nutzen kann, etwa so, wie es normalerweise ein Unterprogramm aufrufen würde." Diese Definition eines Netzes und die Wünschbarkeit eines solchen Netzes werden von Roberts und Wessler in [9] dargelegt.

Der eigentliche Vorgang der Ressourcenteilung kann auf zweierlei Weise erfolgen: auf improvisierte Weise (ad hoc) zwischen allen Paaren von Computersystemen im Netz oder nach einem systematischen, netzweiten Standard. Diese Arbeit entwickelt ein mögliches netzweites System zur Ressourcenteilung.

Ich halte es für natürlich, Ressourcen als mit Prozessen verbunden<1> und nur durch Kommunikation mit diesen Prozessen verfügbar zu betrachten. Daher sehe ich das Grundproblem der Ressourcenteilung als das Problem der Interprozesskommunikation an. Ich teile auch die Auffassung von Carr, Crocker und Cerf [2], dass Interprozesskommunikation über ein Netz ein Sonderfall allgemeiner Interprozesskommunikation in einer multiprogrammierten Umgebung ist.

Diese Auffassungen haben mich zu einer zweiteiligen Untersuchung veranlasst. Zunächst wird eine Menge von Operationen aufgebaut, die Interprozesskommunikation innerhalb eines einzelnen Time-Sharing-Systems ermöglichen. Diese Operationsmenge verwirft viele der gegenwärtig in Time-Sharing-Systemen verwendeten Techniken der Interprozesskommunikation -- etwa die Kommunikation über gemeinsam genutzten Speicher -- und stützt sich stattdessen auf Techniken, die sich leicht verallgemeinern lassen, um Kommunikation zwischen entfernten Prozessen zu erlauben. Der zweite Teil der Untersuchung stellt eine solche Verallgemeinerung vor. Die Anwendung dieses verallgemeinerten Systems auf das ARPA-Computernetz [9] wird ebenfalls erörtert.

Die in dieser Arbeit näher ausgeführten Ideen stammen aus vielen Quellen. Besonders einflussreich waren -- 1) eine frühe Skizze eines Host-Protokolls für das ARPA-Netz von S. Crocker von der UCLA und W. Crowther von Bolt Beranek and Newman Inc. (BBN); 2) die Arbeit von Ackerman und Plummer über das Time-Sharing-System PDP-1 des MIT [1]; und 3) Diskussionen mit W. Crowther und R. Kahn von BBN über Host-Protokoll, Flusssteuerung und Nachrichtenwegewahl für das ARPA-Netz. Hoffentlich finden sich in dieser Notiz auch einige eigene Gedanken. Für das Zusammenführen all dieser Ideen zu dem hier beschriebenen System bin allein ich verantwortlich, und daher bin ich auch für alle Unstimmigkeiten oder Fehler des Systems verantwortlich.

Es muss betont werden, dass diese Arbeit keine offizielle Position von BBN zum Host-Protokoll für das ARPA-Computernetz darstellt.