Zum Hauptinhalt springen

Einleitung

Während wir damit beschäftigt waren, das formale Protokoll zu spezifizieren, versuchten wir zugleich, einen prototypischen NCP in einer Algol-ähnlichen Sprache zu formulieren. Nach einigen Wochen konzentrierter Arbeit wurde das Projekt aufgegeben, da wir erkannten, dass der Code unlesbar wurde. Dennoch hielten wir es weiterhin für nötig, unsere Vorstellung davon zu veranschaulichen, wie ein NCP implementiert werden könnte; wir waren der Ansicht, dass dies helfen würde, Lösungen für Probleme aufzuzeigen, die beim Versuch entstehen können, die formalen Spezifikationen in ein bestehendes System einzupassen. Dieses Dokument ist der Versuch, in Prosaform zu beschreiben, wie ein NCP aussehen könnte.

Ein Vorhaben dieser Art hat offensichtliche Grenzen. Wir kennen nicht alle Eigenheiten der verschiedenen Systeme, die einen NCP schreiben müssen, und können sie auch nicht kennen. Wir sind gezwungen, einige Annahmen über die Umgebung, die Systemaufrufe und dergleichen zu treffen. Wir haben versucht, so allgemein wie möglich zu bleiben, doch zweifellos werden viele Standorte völlig andere Vorstellungen vom NCP haben. Es ist sehr schwierig, unsere Konzepte und die Mechanismen, die mit diesen Konzepten umgehen, Menschen zu vermitteln, die die Dinge auf ganz andere Weise betrachten. Wir haben jedoch sehr davon profitiert, dieses Programm tatsächlich für unsere fiktive Maschine zu codieren. Während der Codierung tauchten viele unvorhergesehene Probleme auf, und wir hoffen, mit der Herausgabe dieses Dokuments dazu beitragen zu können, ähnliche Probleme zu mildern, die im Einzelfall auftreten können.

Selbstverständlich besteht keinerlei Verpflichtung, irgendetwas von dem zu implementieren, was in diesem Dokument enthalten ist. Die einzigen festen Regeln, denen ein NCP entsprechen muss, sind in NWG/RFC#54 festgelegt. Diese Beschreibung ist lediglich als Beispiel gedacht, nicht als Vorbild.

In der folgenden Erörterung beschreiben wir zunächst die vorausgesetzte Umgebung und postulieren eine Reihe von Systemaufrufen. Wir erörtern die Gesamtarchitektur des NCP und die Tabellen, in denen die relevanten Informationen gehalten werden. Es folgen Schilderungen der Netzoperationen. Danach wird ein Zustandsdiagramm vorgestellt, das sich gut eignet, um die Ursache-Wirkungs-Abfolge der Ereignisse zu veranschaulichen. Anschließend wird die detaillierte Verarbeitung jeder Art von Netzereignis (Systemaufrufe oder eingehende Netznachrichten) erörtert.