RFC133 File Transfer and Error Recovery

0133 File Transfer and Error Recovery. R.L. Sunberg. April 1971. (Format: TXT=8322 bytes) (Updates RFC0114) (Status: UNKNOWN)

日本語訳
RFC一覧

参照

Network Working Group                                      R. L. Sunberg
Request for Comments: 133                             Harvard University
NIC 6710                                                   27 April 1971
[Categories C.4, C.5, C.6, D.4, D.7, D.7]


                    FILE TRANSFER AND ERROR RECOVERY


1   FILE TRANSFER PROTOCOL

1A   Handshaking

   I think that Mr Bhushan(RFC #114, NIC 5823) is not strict enough in
   his concept of a transaction sequence.  Every transaction should
   prompt a response from its recipient (recall Kalin's crates --
   RFC #60, NIC 4762).  Control should pass back and forth until the
   server terminates.  The server _always_ gets the last word (more on
   error recovery later).

   Some sample interchanges are given.

       User                Server       Comments

       <...>       ==>                  Establish a connection
                   <==     <...>
       <...>    ==>                  Identify self
                   <==     <+>          Ok, ready

       <...>    ==>                  Retrieval request
                   <==              I've got your file
               ==>                  Send it
                   <==     <,><...>     Here's the first part
               ==>                  Got it
                   <==     <+>          All done

       <...>    ==>                  Store request
                   <==              Ok, go ahead
       <#><...>    ==>                  Here's some protection stuff
                   <==              Ok
       <*><...>    ==>                  Here's the file
                   <==     <+>          Got it.  All done.

   See section 2B, below, for examples of error recovery.







Sunberg                                                         [Page 1]

RFC 133             File Transfer and Error Recovery          April 1971


1B  Extensions to the file transfer protocol

   The file transfer protocol needs a mechanism for accessing individual
   records of a file.  This will be particularly useful when very large
   data bases appear on the network.  The following definitions should
   be added to the protocol:

   The store(S) and retrieve(R) requests have the data field format
   , where  has the syntax:

    ::=RSUS | US.
                           --          --                      --

   The  syntax is changed to:

       ::= |  | RS.
                                                          --
   If a retrieve(R) request is given with a data field with 
   syntax rather than  syntax, then the returned data will
   consist of the record following the matching .  If a store(S)
   request is given with a data field of  syntax, then the
   supplied data will replace the record following the matching
   .  If the keyname does not exist, the record will be
   appended to the named file.  The individual installation must
   provide the linkage between the  and the record it
   references.

   In addition, the lookup(L) request will provide a list of keynames
   into a file (or the name of a file which contains the keynames).

   Transaction code F (request File directory) requests a listing of
   available files.  The data field of the F transaction is of the
   form:  GSGS...  All files in the server system
                    --          --
   which match one or more of the given  specifiers are
   listed in a return file.  The format of the data fields of this
   file is:  GSGS...  If a  field in
                       --          --
   the request transaction does not include a  field, the
   default is all files on the given device.  Some examples are given:

       
           ---             --








Sunberg                                                         [Page 2]

RFC 133             File Transfer and Error Recovery          April 1971


   This example requests a list of all files on the disk specified by
   [62,50] plus all files named JOE.  The response could contain in
   the data field:

     
      ---            --       --      --     -- ---            --

   This message states that in the [62,50] area of the disk there are
   files ALPHA, BETA, and JOE, and that JOE is also a file in the
   [10,50] area of the disk.

2   ERROR RECOVERY

2A   Error recovery procedures have been noticeably lacking to date.
   The usual approach has been to close the connection and start from
   scratch.  Mr Bhushan proposes a third level abort but doesn't
   really detail the implementation.  I propose a multilevel error
   recovery procedure as follows.

2B   If an error occurs which does not cause a loss of third level
   transaction boundaries and only affects one side of a duplex
   connection, a third level recovery is possible via a transaction
   sequence abort.  An example is given:

       User                Server          Comments

       <...>    ==>                     Send me this file
                   <==                 Ok, I've got it
               ==>                     Ready
                   <==     <*><...error>   Here it is (with an error)
       <->      ==>                     No.  (data) error
                   <==     <->          Sorry, forget it
       <...>    ==>                     Send the file (again)
                   |<==                Ready (doesn't get there)
                   ...                     (waiting)
       <-><0>      ==>                     Error, timeout
                   <==     <-><0>          Sorry, forget it
       <...>    ==>                     Send the file (third time)
                   <==                 Got it
               ==>                     Ready
                   <==     <*><...>        There it is
               ==>                     Got it
                   <==     <+>             Done (finally>

   Note that the server always gets the last word in error situations
   as well as normal transmission.





Sunberg                                                         [Page 3]

RFC 133             File Transfer and Error Recovery          April 1971


2C   Although the above examples are given in terms of Bhushan's
   transaction codes, this form of error recovery is implementable in
   any protocol which uses flagged blocking and duplex connections.

2D   If errors cannot be recovered as above, then some means must be
   available to clear the link completely and resynchronize.  I
   suggest that an 8-bit argument be appended to the interrupt-on-link
   NCP message (INR, INS).  The receiver would send  to
   indicate that the block boundaries were lost and all incoming data
   is being discarded.  The sender, upon receiving the INR, would
   flush all queued output and wait for the link to clear.  The NCP
   would then send a  message and, when it was received
   (RFNM returned), a negative termination would be sent on the link.
   The receiver begins accepting data again when the INS is received.
   This assumes that any process can flush untransmitted data and
   detect a clear link.  Note that this method is useable on any
   simplex connection.

2E  If all else fails, one can resort to closing the faulty socket.

3   NCP VERSION NUMBERS

3A  I suggest that the NCP be given a version number and the next
   version include two new message types:  ('Who aRe yoU?')
   requests a version number from the receiving host and 
   ('I AM') supplies that number.

3B  The messages would probably be initially used in a 'can I talk to
   you?' sense or not at all.  Eventually, it would take on a 'what
   can you do?' meaning.  Accordingly, the  field should be
   large (32 bits?) for expansion.



         [ This RFC was put into machine readable form for entry ]
           [ into the online RFC archives by Jose Tamayo 4/97 ]















Sunberg                                                         [Page 4]

一覧

 RFC 1〜100  RFC 1401〜1500  RFC 2801〜2900  RFC 4201〜4300 
 RFC 101〜200  RFC 1501〜1600  RFC 2901〜3000  RFC 4301〜4400 
 RFC 201〜300  RFC 1601〜1700  RFC 3001〜3100  RFC 4401〜4500 
 RFC 301〜400  RFC 1701〜1800  RFC 3101〜3200  RFC 4501〜4600 
 RFC 401〜500  RFC 1801〜1900  RFC 3201〜3300  RFC 4601〜4700 
 RFC 501〜600  RFC 1901〜2000  RFC 3301〜3400  RFC 4701〜4800 
 RFC 601〜700  RFC 2001〜2100  RFC 3401〜3500  RFC 4801〜4900 
 RFC 701〜800  RFC 2101〜2200  RFC 3501〜3600  RFC 4901〜5000 
 RFC 801〜900  RFC 2201〜2300  RFC 3601〜3700  RFC 5001〜5100 
 RFC 901〜1000  RFC 2301〜2400  RFC 3701〜3800  RFC 5101〜5200 
 RFC 1001〜1100  RFC 2401〜2500  RFC 3801〜3900  RFC 5201〜5300 
 RFC 1101〜1200  RFC 2501〜2600  RFC 3901〜4000  RFC 5301〜5400 
 RFC 1201〜1300  RFC 2601〜2700  RFC 4001〜4100  RFC 5401〜5500 
 RFC 1301〜1400  RFC 2701〜2800  RFC 4101〜4200 

スポンサーリンク

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る