dedlfix: FTP via Zip - Transfer - Unzipp

Beitrag lesen

Hi!

FTP hält beim Dateitransfer ein weiteres socket offen, über dass der Status der Übertragung zwischen Server und UserAgent ständig abgeglichen wird.

Umgekehrt wird ein Schuh draus. Es wird eine Kontroll-Verbindung aufgebaut, über die Befehle an den Server gesendet werden, und die der Server mit Statuscodes beantwortet. Die Übertragung von Dateien wird mit einem Befehl ausgelöst und findet in einer eigenen Verbindung statt. Währenddessen ist auf der Kontroll-Verbindung Funkstille. Da muss nämlich nicht ständig ein Status ausgetauscht werden, weil das die Datenverbindung über das TCP-Protokoll von selbst hinbekommt.

Das bringt einen gewissen Geschwindigkeitsverlust gegenüber anderen Protokollen wie z.B. HTTP was nach jeder Übertragung ein Connection Close macht. Andererseits ermöglicht FTP über den Kontrollkanal eine Fortschrittsanzeige für den UA.

Die Übertragung selbst läuft nicht langsamer als bei HTTP, jedoch nimmt der Befehlsverkehr vor dem Start der Übertragung etwas Zeit in Anspruch. Was macht die Erwähnung des Connection Close hier? Zumal es nicht zwingend notwendig ist, die Verbindung zu schließen. Eine Fortschrittsanzeige wird auch bei FTP nicht über Statusinformationen realisiert sondern wie bei HTTP anhand der Anzahl der bereits übertragenen Daten im Verhältnis zur vorher mitgeteilten Dateigröße/Content-Length, falls der Server sie mitteilt, wozu er weder bei FTP noch HTTP verpflichtet ist.

Wenn Du experimentierfeudig bist, vergleiche mal den Dateitransfer mit FTP vs. HTTP, letzeres ist etwa um Faktor 2 schneller.

Den Faktor 2 bekommst du vielleicht bei kleinen Dateien hin, wenn der Verwaltungsaufwand verhältnismäßig viel Zeit in Anspruch nimmt. Bei großen Dateien fällt der Unterschied nicht mehr ins Gewicht.

Noch schneller ist TFTP, der triviale Filetransfer. Hier erfolgt überhaupt keine Kontrolle ob die Daten angekommen sind, es wird anstelle TCP auch UDP benutzt.

Und weil UDP verwendet wird, das keine Kontrolle über eine Reihenfolge oder den Verlust von Paketen bietet, was sich aber bei einer Dateiübertragung äußerst negativ auswirkte, hat beim TFTP der Empfänger jedes Paket zu quittieren, bevor der Sender das nächste auf die Reise schickt. "Noch schneller" ist da lediglich der Austausch der Befehlsinformation am Anfang, weil der auf ein Minimum reduziert ist.

Lo!