home *** CD-ROM | disk | FTP | other *** search
/ Handbook of Infosec Terms 2.0 / Handbook_of_Infosec_Terms_Version_2.0_ISSO.iso / text / rfcs / rfc1440.txt < prev    next >
Text File  |  1996-05-07  |  18KB  |  303 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                           R. Troth Request for Comments: 1440                               Rice University                                                                July 1993 
  8.  
  9.            SIFT/UFT: Sender-Initiated/Unsolicited File Transfer 
  10.  
  11. Status of this Memo 
  12.  
  13.    This memo defines an Experimental Protocol for the Internet    community.  It does not specify an Internet standard.  Discussion and    suggestions for improvement are requested.  Please refer to the    current edition of the "IAB Official Protocol Standards" for the    standardization state and status of this protocol.  Distribution of    this memo is unlimited. 
  14.  
  15. 1.  Introduction 
  16.  
  17.    This document describes a Sender-Initiated File Transfer (SIFT)    protocol, also commonly called Unsolicited File Transfer (UFT)    protocol.  The acronyms SIFT and UFT are synonymous throughout this    document.  The term "unsolicited" does not imply that the file is    unwanted, but that the receiver did not initiate the transaction. 
  18.  
  19.    Sender-Initiated File Transfer contrasts with other file transfer    methods in that the sender need not have an account or any    registration on the target host system, and the receiving user may    have less steps to take to retrieve the file(s) sent.  Unlike    traditional file transfer, UFT lends itself handily to background or    deferred operation, though it may be carried out immediately, even    interactively. 
  20.  
  21. 2.  Rationale 
  22.  
  23.    In certain non-IP networks, notably NJE based networks such as    BITNET, it is possible to send a file to another user outside of the    realm of "mail".  The effect is that the file sent is not perceived    as correspondence and not processed by a mail user agent.  This    convenient service is missed in the standard TCP/IP suite.  The    author maintains that traditional electronic mail is not suited to    non-correspondence file transfer.  There should be a means of sending    non-mail, analogous to the sending of parcels rather than surface    mail.  Several groups and individuals have shown an interest in this    type of service. 
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31. Troth                                                           [Page 1] 
  32.  RFC 1440                        SIFT/UFT                       July 1993 
  33.  
  34.  3.  Specification 
  35.  
  36.    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. 
  37.  
  38.    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. 
  39.  
  40.    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. 
  41.  
  42.    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. 
  43.  
  44.    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. 
  45.  
  46.  
  47.  
  48. Troth                                                           [Page 2] 
  49.  RFC 1440                        SIFT/UFT                       July 1993 
  50.  
  51.     Job Entry capability: 
  52.  
  53.       The target "user" may actually be no user at all, but may be the       name of some software service engine.  An example of this is the       job entry queue available as a pseudo-user on many NJE networked       hosts. 
  54.  
  55. 4.  Essential commands and Syntax: 
  56.  
  57.         FILE    size    sender    [auth]         USER    recipient 
  58.  
  59.         TYPE    type   [parm] 
  60.  
  61.         Representation Types: 
  62.  
  63.         TYPE        A           ASCII, CR/LF (0D/0A)                     B           binary (image; octet stream) 
  64.  
  65.                     C           ASCII, CC, CR/LF (ASA print) 
  66.  
  67.                     U           unformatted (binary; image)                     V           var-length records (16 bit)                     W           wide var-len records (32 bit)                     X           extra-wide var-length (64 bit) 
  68.  
  69.                     I           image (binary; octet stream)                     E           EBCDIC, NL (15)                     F  reclen   fixed-length records (binary) 
  70.  
  71.                     N           NETDATA                     M           ASCII, mail 
  72.  
  73.         Additional Parameters: 
  74.  
  75.         NAME    filename         DATE    date    time    [time-zone] 
  76.  
  77.         CLASS   class         FORM    paper-form-code  or  print-stock-code         DEST    destination 
  78.  
  79.         DIST | BIN | BOX        distribution-code  or  mail-stop         FCB | CTAPE             forms-control-buffer  or  carriage-tape         UCS | CHARSET | TRAIN   print-train  or  character-set 
  80.  
  81.         LRECL           logical-record-length         RECFM           record-format 
  82.  
  83.  
  84.  
  85. Troth                                                           [Page 3] 
  86.  RFC 1440                        SIFT/UFT                       July 1993 
  87.  
  88.          BLKSIZE         block-size 
  89.  
  90.         MODE            file access permissions 
  91.  
  92.         File disposition commands: 
  93.  
  94.         DATA  [burst-size] 
  95.  
  96.         EOF         ABORT 
  97.  
  98.         QUIT 
  99.  
  100. 5.  Details: 
  101.  
  102.    Commands consist of command words, possibly followed by tokens    delimited by white space.  Command lines are ASCII terminated by    CR/LF.  White space may be composed of any mixture of blanks or tab    characters, but use of ordinary blank space (ASCII 0x20) is strongly    recommended. 
  103.  
  104.    One connection (one socket) is used for both commands and data.    While a data burst is being received, command interpretation is    suspended.  Command lines are read until CR/LF; data bursts are read    until burst-size number of octets are received, at which point    command interpretation is resumed.  After data transmission has    begun, the only commands valid are DATA, EOF, ABORT and QUIT.  EOF    causes the server to close the file at the receiving end and return    to normal command processing.  ABORT signals that the client wishes    to discard a file partially transmitted.  QUIT closes any open file,    closes the connection, and can appear anywhere in the job. 
  105.  
  106.    For the daring, a "fast" mode is available.  If the burst-size token    is omitted from the DATA command, processing switches to data mode    and the stream is read until the client closes the connection.  In    this case there is no EOF or QUIT command sent.  NOTE: with the    former mode of operation, the connection may remain open indefinitely    passing multiple files, while in this latter case the connection must    close to terminate the transaction. 
  107.  
  108.    Acknowledgement is by simple "NULL ACK".  A server accepts a command    by sending a single packet back to the client that starts with a NULL    character, decimal 0.  Anything else may be considered negative    acknowledgement, and the client should close the connection.  Any    characters following the NULL may be ignored.  An ACK response packet    may signal only one acknowledgement. 
  109.  
  110.    When a client first connects to a server, the server immediately 
  111.  
  112.  
  113.  
  114. Troth                                                           [Page 4] 
  115.  RFC 1440                        SIFT/UFT                       July 1993 
  116.  
  117.     sends a herald of the form: 
  118.  
  119.                 xxx hostname UFT 1.0 server-version xxx 
  120.  
  121.    where "xxx" represents arbitrary data.  The first "xxx" must be a    single blank delimited token.  1.0 is the protocol version.  Hostname    is the IP name of the host where this server is running.  Server-    version is the name and level of UFT server code on this host. 
  122.  
  123.    A US English server might send: 
  124.  
  125.                 100 ricevm1.rice.edu UFT 1.0 VM/CMS-0.9.2 ready. 
  126.  
  127.    The purpose of this herald is partly for client/server    synchronization, but mainly for protocol agreement.  There may be    future versions of UFT beyond 1.0 which support more features than    are outlined here.  The herald indicates what level of UFT the server    will accept. 
  128.  
  129.    The FILE Command: 
  130.  
  131.                 FILE    size    from    [auth] 
  132.  
  133.    The size is in bytes and may be followed by an 'M', 'K', or 'G',    indicating Mega, Kilo, or Giga.  Size may be an inexact value (the    data file will be read until one of the above end-of-file indications    is received).  The size specified is used to answer the question, "is    there room for it?" 
  134.  
  135.    The from token is the login name of the user sending this file. 
  136.  
  137.    The auth token is an unimplemented authentication ticket.    Authentication is not ensured in the protocol as described.  There    are several ways that it might be added to UFT over TCP, but this    author will wait for authentication developments by others to come to    fruition before implementing any.  When UFT is piggy-backed on mail,    authentication is left to the mail transfer system. 
  138.  
  139.    The FILE command is required in any transaction. 
  140.  
  141.    The USER Command: 
  142.  
  143.                 USER    recipient 
  144.  
  145.    The recipient is a valid local user or service name. 
  146.  
  147.    The USER command is required in any transaction.  Without it, the    destination of the file is unknown. 
  148.  
  149.  
  150.  
  151. Troth                                                           [Page 5] 
  152.  RFC 1440                        SIFT/UFT                       July 1993 
  153.  
  154.     The TYPE Command: 
  155.  
  156.                 TYPE    type   [parm] 
  157.  
  158.    Some representation types need additional specification.  As an    example, the type "F" (fixed length, record oriented) obviously needs    more qualification.  How long are these fixed length records?  A    record length in ASCII decimal should follow the "F" resulting in a    command like "TYPE F 80". 
  159.  
  160.    UFT types V, W, X use a tape model for file transfer.  Files in    transit consist of blocks that vary in size based on the range of    sizes specifiable with 16, 32, or 64 bits, respectively.  Whether the    blocking is significant to the recipient is the decision of the    recipient, but if the file originally had some kind of blocking, it    is preserved without additional processing.  In the stream, the 16,    32, or 64-bit block length is prepended to each record in TCP/IP    network order. 
  161.  
  162.    Type N (NETDATA) is an IBM representation common on NJE networks. 
  163.  
  164.    The TYPE command is required in any transaction. 
  165.  
  166.    The NAME Command: 
  167.  
  168.                 NAME    filename 
  169.  
  170.     A name should typically be associated with the file being sent,    although this is not mandatory.   This is a mixed case token    delimitted by white space.   If the filename contains blanks or white    space, it must be quoted.   Quotation is not valid within the    filename. ASCII control characters (hex 00 thru 1F and 80 thru 9F)    are not valid as part of the filename.  Some characters may have    special meaning to the receiving operating system and their effect is    not guaranteed. 
  171.  
  172.    The NAME command is optional. 
  173.  
  174.    The DATE Command: 
  175.  
  176.                 DATE    date    time    [time-zone] 
  177.  
  178.    The time stamp on the file as it appears at the sending site may be    sent and applied to the copy at the receiving site.  The form is US    mm/dd/yy and hh:mm:ss.  A time zone is optional.  If the time zone is    omitted, local time is assumed.  If the DATE command is omitted, time    and date of arrival are assumed. 
  179.  
  180.  
  181.  
  182. Troth                                                           [Page 6] 
  183.  RFC 1440                        SIFT/UFT                       July 1993 
  184.  
  185.     The DATE command is optional. 
  186.  
  187.    The DATA Command: 
  188.  
  189.                 DATA  [burst-size] 
  190.  
  191.    If no data bursts have yet been received since the connection was    opened or since an EOF or ABORT was received, the server opens a new    file on the receiving end and writes this burst of data to it.  The    file may have already been created by a prior DATA command.  There    can be any number of DATA commands; most files will be sent using    many data bursts.  If burst-size is supplied, then burst-size number    of octets are read and appended to the open file on the receiving end    and the server returns to the command state.  If no burst-size    parameter is given, then the TCP stream is read until it is closed.    (this is the "fast" mode mentioned above) 
  192.  
  193.    The DATA command must come after FILE, USER, TYPE, and any other    parametric commands and must come before any EOF or ABORT command.    The file need not be complete before an ABORT can be received and    carried out, but the DATA command must have completed (burst-size    number of octets must have been read), thus ABORT is not possible in    "fast" mode. 
  194.  
  195.    The EOF Command: 
  196.  
  197.                 EOF 
  198.  
  199.    This signals the server that the entire file has been sent.  The    server then closes the file and ensures that it is disposed of    appropriately, usually just placing it where a user-level application    can retrieve it later. 
  200.  
  201.    The ABORT Command: 
  202.  
  203.                 ABORT 
  204.  
  205.    This signals the server that the client is unable or unwilling to    finish the job.  The file should be discarded and the server should    return to normal command processing. 
  206.  
  207.    The QUIT Command: 
  208.  
  209.                 QUIT 
  210.  
  211.    This signals the server that all work is complete.  Any open file    should be closed and delivered.  The TCP stream will be closed. 
  212.  
  213.  
  214.  
  215.  Troth                                                           [Page 7] 
  216.  RFC 1440                        SIFT/UFT                       July 1993 
  217.  
  218.          Other commands: 
  219.  
  220.         CLASS       class         FORM        paper-form-code  or  print-stock-code         DEST        destination         DIST        distribution-code  or  mail-stop         FCB         forms-control-buffer  or  carriage-tape         CHARSET     print-train  or  character-set 
  221.  
  222.         The above are relevant to print jobs sent to a print server. 
  223.  
  224.         LRECL       logical-record-length         RECFM       record-format         BLKSIZE     block-size         MODE        file access permissions 
  225.  
  226. 6.  References 
  227.  
  228.         NJE        --   Network Job Entry; IBM publication SC23-0070,                         "Network Job Entry; Formats and Protocols" 
  229.  
  230.         NETDATA    --   see IBM publication aann-nnnn (SC24-5461);                         VM/ESA: CMS Application Development Reference                         for Assembler 
  231.  
  232.         BITNET     --   "Because It's Time"; academic network                         based on NJE protocol 
  233.  
  234.         MIME       --   RFC 1341; Multipurpose Internet Mail Extensions;                         Borenstein & Freed 
  235.  
  236.         FTP        --   File Transfer Protocol; STD 9, RFC 959;                         Postel & Reynolds 
  237.  
  238.         SMTP       --   STD 10, RFC 821; Simple Mail Transfer                         Protocol; Postel 
  239.  
  240.         LPR        --   UNIX Programmer's Manual, LPD(8);                         4.2BSD Line Printer Spooler Manual 
  241.  
  242. 7.  Security Considerations 
  243.  
  244.    Security issues are not discussed in this memo. 
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  Troth                                                           [Page 8] 
  253.  RFC 1440                        SIFT/UFT                       July 1993 
  254.  
  255.  8.  Author's Address 
  256.  
  257.    Rick Troth    Rice University    Information Systems    Houston, Texas 77251 
  258.  
  259.    Phone: (713) 285-5148    Fax: (713) 527-6099    EMail: troth@rice.edu 
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301. Troth                                                           [Page 9] 
  302.  
  303.