Mit diesem Programm wird das KC85 System nun "offiziell" internetfähig, wenn ein M052 vorhanden ist. Ein damit ausgestatteter KC kann Dateien in der CP/M Betriebsart ohne fremde Hilfe weltweit übertragen und der PC kann ausgeschaltet bleiben. Der leistungsfähige Terminal-Client für das "File Transfer Protocol" bietet CP/M Anwendern die gleichen Möglichkeiten wie äquivalente PC-Programme.

Vorwort

Mit der Umsetzung des FTP-Protokolls in ein gebrauchsfertiges Programm für die KCNet-Schnittstelle löse ich mein letztes Versprechen ein und ermögliche den CP/M-Anwendern u.a. die unkomplizierte Nutzung des Internets für den Datenaustausch.

Natürlich lässt sich FTP.COM auch im heimischen Netzwerk einsetzen und kann damit das vorhandene TFTP-Programm weitestgehend ablösen. Es gibt allerdings einen wesentlichen Unterschied, denn TFTP.COM kann gleichzeitig als Server und Client arbeiten. Daher kann ein KC als TFTP-Server selbst Daten im Netzwerk bereitstellen - das geht mit FTP.COM nicht.

Ein FTP Programm für den Endanwender implementiert üblicherweise nur Client-Funktionen. Man benötigt daher für den Datentransfer per FTP im Heimnetzwerk immer einen FTP-Server, welcher in Eigenregie bereitgestellt und administriert werden muss.

FTP.COM ist daher primär für den Datenaustausch mit Servern ausserhalb des eigenen Netzwerkes gedacht. Der FTP-Server übernimmt die Funktion eines autonomen Dateiservers für die Daten und Programme des KC. Er läuft permanent unter einem beliebigen Betriebssystem und kann sich irgendwo befinden. Mit Hilfe von FTP.COM nutzt man seine Dienste bei Bedarf und lädt Daten hoch bzw. herunter. Wenn er über das Internet erreicht werden kann, stehen die Daten damit ständig anderen Anwendern zur Verfügung, auch wenn der eigene KC ausgeschaltet ist.

Das FTP-Protokoll ist wesentlich komfortabler und umfangreicher als TFTP. Man kann mit dem Dateisystem des Servers nahezu genauso arbeiten, wie mit lokalen Datenträgern. Daher bietet es sich natürlich auch für andere Zwecke an. FTP.COM soll bei mir beispielsweise zukünftig für die Datensicherung auf dem Netzwerkserver eingesetzt werden. Das Programm wurde deshalb mit einigen Extras versehen, damit sich solche umfangreichen und langwierigen Vorgänge automatisieren und kontrollieren lassen.

Mit FTP.COM kann sich der "kleine 8-Bit-PC" nahtlos in (m)eine vorhandene Netzwerkstruktur einordnen und wird genau wie andere Teilnehmer gleichberechtigt behandelt. Der KC85 verliert damit seinen "Exotenstatus", was Netzwerk und Internet betrifft und für mich ist so auch das wichtigste Kernziel des TCP/IP-Projektes erfüllt.

 

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:

1. http://www.elektronik-kompendium.de/sites/net/0902241.htm
2. http://de.wikipedia.org/wiki/File_Transfer_Protocol
3. http://de.kioskea.net/contents/internet/ftp.php3
4. https://www.wintotal.de/heim-ftp-server

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.