Zum Hauptinhalt springen

II Datenstrukturen

  1. Verbindungstabelle

  2. Prozesstabelle

  3. Eingangs-Link-Tabelle

  4. Ausgangs-Link-Tabelle

  5. Link-Zuweisungstabelle

Verbindungstabelle​

Diese enthält alle Informationen, die lokale Sockets betreffen, insbesondere ob ein Socket an einer Verbindung beteiligt ist und, falls ja, in welchem Zustand sich die Verbindung befindet. Die Einträge werden durch den lokalen Socket indiziert, aber auch andere Tabellen haben Zeiger in diese Tabelle. (Siehe die Prozesstabelle, die Eingangs-Link-Tabelle und die Ausgangs-Link-Tabelle.)

Jeder Eintrag enthält die folgenden Informationen:

  1. lokaler Socket (Schlüssel)

  2. fremder Socket

  3. Link

  4. Verbindungszustand

  5. Flusszustand und Puffersteuerung

  6. Zeiger auf den Prozess des Benutzers

  7. Steuerzustand der Neuverbindung

  8. Warteschlange wartender Anrufer

Der lokale Socket ist eine 32-Bit-Zahl. Wenn für einen bestimmten Socket kein Eintrag existiert, kann er mit Nullwerten erstellt werden.

Der fremde Socket ist eine 40-Bit-Zahl. Dieses Feld bleibt unbelegt, wenn keine Verbindung hergestellt ist.

Der Link ist eine 8-Bit-Zahl und ist der Link, über den Daten vom Sender zum Empfänger gesendet werden. Ein Socket ist genau dann ein Empfangssocket, wenn sein niederwertigstes Bit null ist.

Der Verbindungszustand bezieht sich darauf, ob eine Verbindung offen ist oder nicht, usw. Die folgenden Möglichkeiten können auftreten.

  1. lokaler Prozess hat eine Verbindung angefordert

  2. fremder/fremde Prozess(e) hat/haben eine Verbindung angefordert

  3. Verbindung hergestellt

  4. Neuverbindung im Gange

  5. Schließen wartend

  6. Neuverbindung wartend

Flusszustand und Puffersteuerung beziehen sich auf die Prüfung auf RFNMs, das Senden und Annehmen von Stopp-, Aussetz- und Fortsetzungskommandos und die Verfolgung ein- oder ausgehender Daten.

Ein Zeiger auf den Prozess des Benutzers ist erforderlich, wenn der Prozess eine Verbindung angefordert hat.

Wenn eine Neuverbindung im Gange ist, ist es erforderlich, den Ablauf der Ereignisse zu verfolgen. Ein an einer Neuverbindung beteiligter Socket ist entweder ein Ende oder ein Zwischenglied. Wenn er ein Zwischenglied ist, ist es erforderlich, den Acht-Bit-Namen des anderen Zwischenglieds zu speichern, das an denselben Prozess angehängt ist, und den Empfang von END- und RDY-Kommandos aufzuzeichnen.

Schließlich werden, wenn RFCs entweder empfangen werden, während der Socket belegt ist, oder wenn kein Prozess ihn belegt hat, die RFCs nach dem First-in-First-out-Prinzip in einer Warteschlange für den genannten lokalen Socket gestapelt.

Prozesstabelle​

Diese Tabelle ordnet einen Prozess einem Socket zu. Sie wird zur Verarbeitung von Systemaufrufen verwendet.

Diese Tabelle ordnet Empfangslinks lokalen Sockets zu. Sie wird verwendet, um zu entscheiden, für wen eingehende Nachrichten bestimmt sind.

Diese Tabelle ordnet Sendelinks lokalen Sockets zu. Sie wird verwendet, um RFNMs und RSM-Kommandos zu interpretieren.

Links werden von den Empfängern zugewiesen. Diese Tabelle zeigt, welche Links frei sind.