RFC 1440 (rfc1440) - Page 2 of 9


SIFT/UFT: Sender-Initiated/Unsolicited File Transfer



Alternative Format: Original Text Document



RFC 1440                        SIFT/UFT                       July 1993


3.  Specification

   We define sender-initiated file transfer for IP as a TCP service as
   follows: a receiver program (the server or "daemon") listens on port
   608 for inbound connections.  Client programs connect to this port
   and send a sequence of commands followed by a stream of data.  The
   entire job stream may be thought of as the concatenation of two
   files, 1) a control file, and 2) a data file, where the control file
   is plain text and the data file may be any of several formats, but is
   stored and sent as binary.  After each command, the receiver either
   ACKs (signals positive acknowledgement) or NAKs (signals negative
   acknowledgement).  The target host may reject a file for various
   reasons, most obvious being 1) that there is no local user matching
   the intended user, or 2) that there is not enough space to hold the
   incoming file.

   Most UFT commands are parametric.  That is, they don't necessarily
   invoke an action as much as change parameters of the one action,
   transfer of the file(s) being sent.  This means that UFT is suitable
   for encapsulation in some higher-level "envelope", such as mail.
   However, the obvious prefered medium for UFT is TCP.

   When files arrive at the destination host, they are kept in a public
   area, say /usr/spool/uft, until accepted or rejected by the recipient
   user or discarded for age by the system.  This staging area is public
   in the sense of shared space, not unrestricted access.  Exactly how
   long files may remain unprocessed and exactly how large these
   transient files may be is a local administrative or implementation
   decision.

   But not all hosts have IP connectivity; not all hosts will want to
   put up yet another server; not all hosts will be on the unrestricted
   side of a "fire wall" that only passes mail.  In such cases, UFT may
   be transported via MIME (Multipurpose Internet Mail Extensions) as
   Content-Type: application/octet-stream.  UFT commands then become
   parameters to the Content-Type field and the data file is carried as
   the mail body.  While the data file is carried in raw (binary) form
   over TCP, it is encoded in BASE64 when carried by mail.

   UFT supports several representation types.  The receiving host should
   accept any file type sent.  If the representation type is not
   meaningful to the target host system, then it should be treated as
   "binary" (image).  The data file (body) should be processed as little
   as possible until the target user (recipient) acts to accept
   (receive) it.  The commands from the client may be stored in the form
   of a plain-text file so that processing otherwise foreign to the
   receiver may be off-loaded from the TCP listener.  So there are
   actually two files: the command sequence and the file body.



Troth