Zum Hauptinhalt springen

PDP-10-Dateiübertragung

Nehmen Sie an, ich habe eine Verbindung zu einer anderen PDP-10 und dort einen Benutzerprozess, der zuhört. Um diesen Prozess dazu zu bringen, mir eine Datei zu senden, kann die Folge von Flags, die übertragen werden könnte, wie folgt dargestellt werden, wobei die von mir ausgeführten UUOs am linken Rand stehen, die Flags eingerückt sind und der ihnen gegenüberstehende Kommentar die Art des übertragenen Datenblocks angibt:

   PUT F
CONTROL Data with OPEN parameters, requesting OPEN
LABEL File identification data for LOOKUP
EOM Forces message to be transmitted

GETFD
STATUS Status returned by OPEN
SIZE Byte size to be used
LABEL File retrieval information

PUTF
CONTROL Data requesting INPUT from file
EOM Forces request to be transmitted

GETFD
STATUS Status bits returned by INPUT

GET Logical record (one file buffer load)
(loop back to second PUTF, above, for other records)

Finally, the status information returned by the second GETF indicates
end of file, and I wind up with the sequence:

PUTF
CONTROL Data requesting a CLOSE
EOM Forces transmission

GETFD
STATUS Status bits returned by CLOSE

In the case I am getting a file, the main loop looks like:

PUTF
CONTROL Data requesting OUTPUT

PUT Logical record (one file buffer load)

PUTF
EOM Forces transmission

GETFD
STATUS Status bits returned by OUTPUT

Die Verwendung sowohl der Satz- als auch der Flag-Übertragungs-UUOs ist bemerkenswert, ebenso die Verwendung des EOM-Flags, um die Übertragung einer Nachricht zu erzwingen, wenn über die Verbindung zwischen Eingabe und Ausgabe gewechselt wird. PUT- und GET-UUOs sind oben für die Übertragung der CONTROL- und LABEL-Daten eindeutig erforderlich; ich habe sie der Klarheit wegen unterdrückt.

Für diese Anwendung ist der Handshake-Charakter der Übertragung von CONTROL- und STATUS-Flags zwingend. Während das Protokoll die Übertragung einer vollständigen Datei ohne den Handshake erlauben würde, wäre es ein Alles-oder-nichts-Vorhaben – ein einziger Fehler würde erfordern, alles noch einmal zu tun, vorausgesetzt, der empfangende Prozess endete nicht in einem völligen Durcheinander.