Einführung
FTP.COM ist ein vollwertiges CP/M-Terminalprogramm für den Datenaustausch in lokalen Netzwerken oder im Internet. Es implementiert das File Transfer Protocol in einer CP/M-Umgebung, welches zum Kopieren von Dateien von einem Host zu einem anderen über ein TCP/IP-basiertes Netzwerk verwendet wird. FTP benutzt das Internet Transmission Control Protocol (TCP) für den Transport der Daten.
Die aktuelle Spezifikation von FTP wird in RFC 959 beschrieben. Der CP/M-Client unterstützt alle Kommandos, welche in diesem RFC definiert werden, ausser SMNT, REIN, STOU, APPE, ALLO und REST. Der Transfer von Daten ist beschränkt auf die Datenstruktur "file-structure", den Übertragungsmodus "stream-mode" und die beiden Datentypen "ASCII TYPE" und "IMAGE TYPE" (binär).
Das Programm berücksichtigt die in RFC 1579 vorgeschlagene Änderung des Verhaltens von FTP-Clients. Standardmässig werden Datenverbindungen vom Client zum Server passiv geöffnet, das aktive Herstellen einer Datenverbindung steht natürlich auch zur Verfügung.
Zusätzlich unterstützt FTP.COM verschiedene optionale Erweiterungen des FTP-Protokolls:
- FEAT und OPTS (RFC 2389)
- LANG (RFC 2640)
- MDTM und SIZE (RFC 3659)
- MFMT und MFCT (draft-somers-ftp-mfxx-04).
Das CP/M-Programm verfügt über die Standard-Funktionalitäten von vergleichbaren FTP-Programmen anderer Betriebssysteme. Es ist in der Lage, auf Wunsch seine Aktionen und die Resultate in einer Protokoll-Datei aufzuzeichnen und es kann auch mit Hilfe von Kommando-Skripts voll automatisiert werden.
Die Schnittstelle für den Bediener bildet eine sehr leistungsfähige Kommandozeile, bestehend aus 50 Programm-Befehlen. Mit der eingebauten Hilfefunktion kann für jeden Befehl eine kurze Information angezeigt werden. Eingegebene (Teil-)Kommandos können automatisch vervollständigt werden. Wenn in Abhängigkeit von der Eingabe mehr als ein Kommando möglich ist, zeigt das Programm die verbleibenden Möglichkeiten selektiv an. Die Kommandozeile hat ein eingebautes "Gedächtnis", womit man in der Lage ist, rückwärts bzw. vorwärts durch zuvor eingegebene Befehle zu blättern, diese zu verändern und wiederholt auszuführen. Die gesamte Kommando-Historie kann in eine externe (Text-)Datei abgespeichert bzw. komplett durch den Inhalt einer externen (Text-)Datei ersetzt werden.
Bei der Nutzung von Kommandos, welche gleichzeitig auf mehrere Dateien angewendet werden können, ist die Benutzung der Platzhalterzeichen "*" und/oder "?" für die Auswahl von Dateigruppen möglich. Das Programm hat für die Verarbeitung beliebiger Verzeichnisinhalte von FTP-Servern einen automatischen 8.3-Filter, welcher die Kompatibilität mit dem CP/M-Dateisystem sicherstellt und bei nachfolgenden Aktionen die störungsfreie Ausführung gewährleistet. Das eingebaute TYPE Kommando zeigt den Inhalt von Server-Dateien ohne lokale Ablage im Dateisystem direkt auf dem Bildschirm an. Beim Übertragen von Daten können bereits vorhandene Dateien auf der jeweils anderen Seite automatisch bzw. interaktiv übersprungen oder überschrieben werden.
Standardmässig zeigt das Programm nur ausgewählte Erfolgsmeldungen oder Fehlermeldungen nach Aktionen an. Für die vollständige Anzeige aller Reaktionen kann man bei Bedarf eine erweiterte Ausgabe einschalten. Speziell für die Fehlersuche bei Kommunikationsproblemen mit FTP-Servern lässt sich zusätzlich die Bildschirmausgabe aller gesendeten Client-Befehle, sowie der Antwort-Kodes des Servers zuschalten.
FTP.COM benötigt protokollbedingt 2 freie Sockets der KCNet-Schnittstelle. Ein Kanal wird für den Transport von Befehlen an den Server und Antworten an den Client verwendet, wobei die Kommunikation auf diesem Kanal mit Hilfe des TELNET-Protokolls abgewickelt wird. Der zweite Kanal wird ausschliesslich für die Übertragung von Daten verwendet. Der Befehlskanal muss während einer FTP-Sitzung immer aktiv sein, der Datenkanal wird nur für die Datenübertragung geöffnet und i.d.R. anschliessend wieder geschlossen. Da FTP.COM ausschliesslich im "stream-mode" Daten überträgt, wird der Datenkanal grundsätzlich auf- und abgebaut, da dadurch das Ende der Übertragung vom Sender an den Empfänger signalisiert wird.
Eine Verbindungsaufnahme zum Server wird standardmässig auf TCP-Port 21 versucht. Wenn der Server nicht auf dem Standardport läuft, ist der abweichende Port in der Kommandozeile oder beim OPEN Kommando durch einen Doppelpunkt getrennt an den Servernamen anzuhängen.
Die prinzipielle Funktion des FTP-Protokolls kann man im Internet nachschlagen, deshalb wird an dieser Stelle darauf verzichtet. Nachfolgend einige Links zu deutschsprachigen Quellen:
Das FTP-Protokoll gehört, neben TELNET, zu den Urgesteinen der Netzwerkprotokolle. Die Anfänge reichen bis in den April 1971 zurück und die Spezifikation wurde im Laufe der Jahre ständig weiterentwickelt und vervollkommnet. Die zur Zeit gültige Basis-RFC 959 wurde im Oktober 1985 verabschiedet und enthält über 3 Seiten Literaturangaben im Anhang. Das war vor rund 25 Jahren! und mittlerweile gibt es eine ganze Latte ergänzender RFC's, wo Protokollerweiterungen und Präzisierungen vorgenommen wurden.
Das CP/M-Programm unterstützt und nutzt eine ganze Menge dieser Erweiterungen, welche aber immer nur optionalen Charakter haben. Ein FTP-Server muss grundsätzlich nur konform zur Basis-RFC sein. Der Leistungsumfang von FTP.COM sollte durch die umfassende Implementierung aller wichtigen Kommandos aus RFC 959 die Kommunikation mit jedem korrekt programmierten FTP-Server ermöglichen und braucht sich auch nicht vor gleichwertigen Programmen anderer Systeme zu verstecken. Mit der Unterstützung zusätzlicher optionaler Kommandos der FTP-Erweiterungen und die integrierte automatische Berücksichtigung von CP/M-Besonderheiten sollte jedem interessierten Anwender ein ausgesprochen komfortables Übertragen von Daten möglich sein, wenn er etwas Zeit und Mühe in das Erlernen der Programmfunktionen steckt. Vor allem Übung macht bei einem Kommandozeilenprogramm den Meister und die Routine kommt mit der Anwendung irgendwann von ganz allein.