IX. Algorithmen für den Systemaufrufinterpreter
Jeder Systemaufruf wird erörtert, zusammen mit den Zustandsänderungen, die er bewirken kann:
CONNECT
Gibt es keinen Eintrag, einen anlegen, einen RFC ausgeben und in den Zustand RFC-SENT wechseln.
Wenn CS = PENDING, die Warteschlange durchsuchen und alle nicht passenden Anforderungen zurückweisen. Wird keine Übereinstimmung gefunden, einen RFC ausgeben und in den Zustand RFC-SENT wechseln. Wird eine Übereinstimmung gefunden, einen RFC ausgeben und in den Zustand OPEN wechseln. Die Übertragung kann beginnen, sobald Pufferplatz zugewiesen wurde.
In jedem anderen Zustand ist dieser Befehl unzulässig.
LISTEN
Existiert kein Eintrag, einen anlegen und in den Zustand LISTENING wechseln.
Wenn CS = PENDING, den Benutzer informieren und in den Zustand RFC-RCVD wechseln.
In jedem anderen Zustand ist dieser Befehl unzulässig.
ACCEPT
Wenn CS = RFC-RCVD, einen RFC ausgeben und in den Zustand OPEN wechseln. Die Datenübertragung kann erfolgen, sobald Pufferplatz zugewiesen ist.
Wenn CS = ABORT, den Benutzer über die vorzeitige Beendigung der Verbindung informieren. Ist die Warteschlange anstehender Anrufe leer, den Eintrag löschen; andernfalls in den Zustand PENDING wechseln.
In keinem anderen Zustand kann dieser Befehl zulässig ausgeführt werden.
CLOSE
Wenn CS =
- LISTENING: den Eintrag löschen.
- RFC-RCVD: ein CLS ausgeben und in den Zustand CLS-WAIT wechseln.
- ABORT: den Benutzer über die vorzeitige Beendigung der Verbindung informieren. Ist die Warteschlange anstehender Anrufe leer, den Eintrag löschen; andernfalls in den Zustand PENDING wechseln.
- RFC-SENT: ein CLS ausgeben und in den Zustand CLS-WAIT wechseln.
- OPEN: Befinden wir uns auf der Sendeseite und ist die Datenwarteschlange nicht leer oder steht noch ein Data-RFNM aus, in den Zustand DATA-WAIT wechseln; andernfalls ein CLS ausgeben und in den Zustand CLS-WAIT wechseln.
- CLS-WAIT: Ein CLOSE in diesem Zustand auszugeben ist ein USER ERROR.
- DATA-WAIT: Ein CLOSE in diesem Zustand auszugeben ist ebenfalls eine unzulässige Abfolge.
- RFNM-WAIT: das CLOSE ignorieren.
Ein gültiges CLOSE kann nicht ausgegeben werden, wenn kein Eintrag existiert oder wenn sich ein Socket im Zustand PENDING befindet.
Hinweis: undefined