Simple Asyncronous File Transfer

Aus UUGRN

SAFT ist ein Akronym und steht für Simple Asyncronous File Transfer.

Idee und Ansatz[Bearbeiten]

Das Protokoll füllt die Lücke in der Vielfalt von Filetransfer-Protokollen, wo es um den Versand von Dateien an bestimmte Empfänger geht. Dateitransfers sind in der Regel als URL/Download organisiert, d.h. der Empfänger muss sich die Datei selbst abholen. E-Mail funktioniert nach dem Schema "Datei-Versand", ist jedoch aufgrund seiner Natur nicht besonders gut für Filetransfers optimiert., auch wenn aufgrund von MIME Binärdaten übertragen werden können.

Funktionsprinzip[Bearbeiten]

SAFT ist also ein Datei-Versandprotokoll. Die Übertragung erfolgt aber nicht syncron, d.h. von Client zu Client, sondern asyncron. Zu diesem Zweck gibt es Daemons, die jeweils einen Spool verwalten, ähnlich wie es Mail-Servern der Fall ist. Beim Versenden einer Datei wird diese zunächst absenderseitig gespoolt, d.h. in die Warteschlange übernommen. Der Daemon überträgt die Datei, sobald er den Server des Empfängers erreichen kann, zum Beispiel sobald dieser online ist. Die Datei kann in Teilen übertragen werden. Sobald die Datei vollständig übertragen wurde, wird der Empfänger auf geeignete Weise darüber informiert, er kann diese dann aus seinem Spool "abrufen", d.h. lokal abspeichern.

Details[Bearbeiten]

  • Das Adressenformat ist wie bei E-Mail: remoteuser@remotehost.example.com (es gibt KEINEN MX-Mechanismus wie bei SMTP!)
  • Die Verbindung wird auf dem Port tcp/487 aufgebaut

Tipps[Bearbeiten]

  • Bei dynamischen IP-Adressen ist es sinnvoll, einen DynDNS-Service in Anspruch zu nehmen.
  • Bei Verwendung eines NAT-Routers muss der Port tcp/487 an den internen Zielrechner durchgereicht werden. Die Verwendung dieses Ports ist obligatorisch, da der Absender keine Information über einen Port mitgeben kann.

sendfile[Bearbeiten]

sendfile ist eine Referenzimplementation für das SAFT Protokoll. Es liefert verschiedene Komponenten wie etwa den Daemon (sendfiled) oder den client (sendfile).


Weblinks[Bearbeiten]