Zum Hauptinhalt springen

5.2 Verbindungen (CONNECTIONS)

Der Server-Protokollinterpreter muss am Port L auf Steuerungsverbindungen „lauschen" (listen). Der Benutzer oder der Benutzer-Protokollinterpreter muss die Vollduplex-Steuerungsverbindung (Full-Duplex Control Connection) initiieren. Server- und Benutzer-Protokollinterpreter müssen den Konventionen des Telnet-Protokolls folgen, wie im ARPA-Internet-Protokollhandbuch [1] spezifiziert. Server sind nicht verpflichtet, die Bearbeitung von Befehlszeilen bereitzustellen und können verlangen, dass dies im Benutzer-Host durchgeführt wird. Die Steuerungsverbindung muss vom Server auf Anfrage des Benutzers geschlossen werden, nachdem alle Übertragungen und Antworten abgeschlossen sind.

Der User-DTP muss am angegebenen Datenport „lauschen" (listen); dies sollte VOR dem Senden des Übertragungsanforderungsbefehls erfolgen. Der Server muss die Datenverbindung von seinem eigenen Standard-Datenport unter Verwendung des angegebenen Benutzerdatenports initiieren. Die Datenverbindung muss Duplex sein, damit der Server Steuerungsinformationen senden kann, während Daten vom User-DTP gesendet werden.

Es sollte beachtet werden, dass alle FTP-Implementierungen die Datenübertragung unter Verwendung des Standardports unterstützen müssen, und dass nur der USER-PI die Verwendung von Nicht-Standardports initiieren darf.

Wenn Daten zwischen zwei Servern übertragen werden sollen, muss der User-PI Steuerungsverbindungen zu den beiden Servern herstellen. Der Benutzer muss dann einen Übertragungsanforderungsbefehl (RET, STOR oder LIST) mit einem FTP-Serverdatenport als Argument an einen Server-PI senden. Dann muss eine andere Übertragungsanforderung mit dem FTP-Serverdatenport als Argument an den anderen Server-PI gesendet werden. Die Antwortcodes müssen bestimmen, wann der User-PI einem der Server-PIs sagen sollte, die Verbindung zu initiieren. Der User-PI sendet einem Server-PI einen PASV-Befehl, der ihm sagt, auf der Datenverbindung zu „lauschen" (listen), anstatt sie beim Empfang eines Übertragungsbefehls zu initiieren. Der Benutzer sendet dann den Übertragungsbefehl an den anderen Server-PI. Die Server sollten dann eine Verbindung herstellen und Daten austauschen.