Zum Hauptinhalt springen

Anmelden

Wir nehmen an, dass in jedem Host stets ein Prozess ausgeführt wird, der auf Anmeldeanforderungen wartet. Wir nennen diesen Prozess den Logger, und er ist Teil eines speziellen virtuellen Netzes, dessen Benutzernummer null ist. Der Logger ist so programmiert, dass er auf Anrufe am Socket Nummer 0 wartet. Beim Empfang eines Anrufs schaltet er ihn auf höher (gerade) nummerierte Sockets um und sendet einen Anruf an den Socket zurück, dessen Nummer um eins kleiner ist als der ursprünglich anrufende Sende-Socket. Auf diese Weise kann der Logger 127 Gespräche initiieren.

Zur Veranschaulichung nehmen wir an, ein Benutzer mit der Identifikation X'010005' (Benutzernummer 5 bei UCLA) meldet sich bei UCLA an, startet eines seiner Programme, und dieses Programm möchte einen Prozess bei SRI starten. Außer dem Logger ist derzeit kein Prozess bereit, auf unseren Benutzer zu warten, also führt er aus

Init, <port> = 1, <AEN 1> = 7, <AEN 2> = 7,
<foreign socket> = 0

Sein Prozess wird blockiert, und das NCP bei UCLA sendet

RFC   <my socket 1> = X'0100050107',
<my socket 2> = X'0100050107',
<your socket> = X'000000200'

Der Logger bei SRI wird beim Empfang dieser Nachricht benachrichtigt, weil er zuvor ausgeführt hat

Listen   <port> = 9, <AEN 1> = 0.

Der Logger führt dann aus

Accept   <AEN 2> = 88.

Als Antwort auf das Accept sendet das NCP von SRI

RFC   <my socket 1> = X'0000000200'
<my socket 2> = X'0000000258'
<your socket> = X'0100050107'
<link> = 37

wobei der Link aus der Menge der verfügbaren Links ausgewählt wurde. Der SRI-Logger führt dann aus

Init     <port> = 10
<AEN 1> = 89, <AEN 2> = 89,
<foreign socket> = X'0100050106'

was das NCP dazu veranlasst, zu senden

RFC   <my socket 1> = X'0000000259'
<my socket 2> = x'0000000259'
<your socket> = X'0100050106'

Der Prozess bei UCLA wird entblockiert und über das erfolgreiche Init benachrichtigt. Da der SRI-Logger stets eine Verbindung zum AEN herstellt, das um eins kleiner ist als das, mit dem er gerade verbunden wurde, führt der UCLA-Prozess dann aus

Listen   <port> = 11
<AEN 1> = 6

und, wenn entblockiert,

Accept   <AEN 2> = 6

Wenn diese Transaktionen abgeschlossen sind, ist der UCLA-Prozess doppelt mit dem Logger bei SRI verbunden. Der Logger wird dann den UCLA-Prozess befragen und, wenn er zufrieden ist, einen neuen Prozess bei SRI erzeugen. Dieser neue Prozess wird mit der Benutzernummer X'010005' gekennzeichnet, und beide Verbindungen werden auf den neuen Prozess umgeschaltet. In diesem Fall entspricht das Umschalten der Verbindungen auf den neuen Prozess dem "Weiterreichen der Konsole nach unten" in vielen Time-Sharing-Systemen.