rfc114.txt

来自「著名的RFC文档,其中有一些文档是已经翻译成中文的的.」· 文本 代码 · 共 956 行 · 第 1/3 页

TXT
956
字号
        STX, ETX, etc.)                 8             A          FDEC-packed ASCII (5 7-bit char.,        36th bit 1 or 0)                36            A          DEBCDIC characters                       8             E         NULSIXBIT characters                       6             S         NULBinary data                             1             B         NULBinary bytes (size is binary ext.)      1-255         B        (any)Decimal numbers, net ASCII              8             D          ADecimal numbers, EBCDIC                 8             D          EDecimal numbers, sixbit                 6             D          SDecimal numbers, BCD (binary coded)     4             D          BOctal numbers, net. ASCII               8             O          AOctal numbers, EBCDIC                   8             O          EOctal numbers, SIXBIT                   6             O          SHexadecimal numbers, net. ASCII         8             H          AHexadecimal numbers, EBCDIC             8             H          EHexadecimal numbers, SIXBIT             6             H          SUnsigned integers, binary (ext.        field is byte size)             1-225         U        (any)Sign magnitude integers (field is        binary size)                    1-255         I        (any)2's complement integers (ext.        field is byte size)             1-255         2        (any)1's complement integers (ext.        field is byte size)             1-255         1        (any)Floating point (IBM360)                 32            F          IFloating point (PDP-10)                 36            F          DStatus codes                            8             S         NULBhushan                                                        [Page 12]RFC 114                 A FILE TRANSFER PROTOCOL           16 April 1971   4C.   The data type information is intended to be interpretive.  If a         host accepts a data type, it can interpret it to a form suited         to its internal representation of characters or numbers [15].         Specifically when no conversion is to be performed, the data         type used will be binary.  The implicit or explicit byte size         is useful as it facilitates storing of data.  For example, if a         PDP-10 receives data types A, A1, AE, or A7, it can store the         ASCII characters five to a word (DEC-packed ASCII).  If the         datatype is A8 or A9, it would store the characters four to a         word.  Sixbit characters would be stored six to a word.  If         conversion routines are available on a system, the use of         system program could convert the data from one form to another         (such as EBCDIC to ASCII, IBM floating point to DEC floating         point, Decimal ASCII to integers, etc.).5. Initial Connection, CLS, and Identifying Users   5A.   There will be a prearranged socket number [16] for the         cooperating process on the serving host.  The connection         establishment will be in accordance with the initial connection         protocol of RFC 66 as modified by RFC 80.  The NCP dialog would         be:              user to server:    RTS<us><3><p>         if accepted, server to user:    STR<3><us><CLS><3><us>              server to user on link p:  <ss>              server to user:    STR<ss+1><us>RTS<ss><us+1><q>              user to server:    STR<us><ss+1>RTS<us+1><ss><r>         This sets up a full-duplex connection between user and server         processes, with server receiving through local socket ss from         remote socket us+1 via link q, and sending to remote socket us         through local socket ss+1 via link r.   5B.   The connection will be broken by trading a CLS between the         NCP'S for each of the two connections.  Normally the user will         initiate the CLS.         CLS may also be used by either the user or the server to abort         a data transmission in the middle.  If a CLS is received in the         middle of a transaction sequence, the whole transaction         sequence will be aborted.  The using host will then reopen the         connection.   5C.   The first transaction from the user to server will be the         identify transaction.  The users will be identified by the         pathname in data field of the transaction which should be aBhushan                                                        [Page 13]RFC 114                 A FILE TRANSFER PROTOCOL           16 April 1971         form acceptable to the server.  The server is at liberty to         truncate pathnames for its own use.  Since the identify         transaction does not require a response or terminate, the user         can proceed directly with other requests.IV.  Extensions to Protocol   The protocol specified above has been designed to be extendable.  The   obvious extensions would be in the area of transaction types (new   types of requests), error return status words, and data types.  Some   of the non-obvious extensions, that I can visualize are provisions of   access control mechanisms, developing a uniform way of specifying   file attributes in headings of files, increasing the scope of the   execute command to include subroutine mediation, and the provision of   transaction sequence identification numbers to facilitate handling of   multiple requests over the same connection pair.   Users of protected file systems should be able to have a reasonable   degree of confidence in the ability of the serving process to   identify remote users correctly.  In the absence of such confidence,   some users would not be willing to give access to the serving process   (especially write access).  Inclusion of access control mechanisms   such as passwords, is likely to enhance the indirect use of network   by users who are concerned about privacy and security.  A simple   extension to the protocol would be to have the serving host sent a   transaction type "password?" after it receives user name.  Upon   receipt of "password?" the using host will transmit the password,   which when successfully acknowledged, would indicate to the user that   requests may proceed.   There are a number of file attributes which properly belong in the   heading of a file rather than the file itself or the data type in   descriptors of transactions.  Such attributes include access control   lists, date file was last modified, information about the nature of   file, and description of its contents in a data description or data   reconfiguration language.  Some uniformity in the way file attributes   are specified would be useful.  Until then, the interpretation of the   heading would be up to the user or the using process.  For example,   the heading of files which are input to a data reconfiguration (form)   machine may be the desired transformations expressed in the   reconfiguration language.   The "execute" command which achieves the execution of programs   resident in remote hosts is a vital part of indirect use of remote   hosts.  The present scope of the execute command, as outlined in the   specifications, is somewhat limited.  It assumes that the user orBhushan                                                        [Page 14]RFC 114                 A FILE TRANSFER PROTOCOL           16 April 1971   using process is aware of the manner in which the arguments and   results should be exchanged.  One could broaden the scope of the   execute command by introducing a program mediation protocol [17].   The present specification of the protocol does not allow the   simultaneous transfer and processing of multiple requests over the   same pair of connections.  If such a capability is desired, there is   an easy way to implement it which only involves a minor change.  A   transaction sequence identification number (TSid) could replace a NUL   field in the descriptor of transactions.  The TSid would facilitate   the coordination of transactions, related to a particular transaction   sequence.  The 256 code combinations permitted by the TSid would be   used in a round-robin manner (I can't see more than 256 outstanding   requests between two user-processes in any practical implementation).   An alternate way of simultaneous processing of requests is to open   new pairs of connection.  I am not sure as to how useful simultaneous   processing of requests is, and which of the two is a more reasonable   approach.V. Conclusions   I tried to present a user-level protocol that will permit users and   using programs to make indirect use of remote host computers.  The   protocol facilitates not only file system operations but also program   execution in remote hosts.  This is achieved by defining requests   which are handled by cooperating processes.  The transaction sequence   orientation provides greater assurance and would facilitate error   control.  The notion of data types is introduced to facilitate the   interpretation, reconfiguration and storage of simple and limited   forms of data at individual host sites.  The protocol is readily   extendible.Endnotes   [1] The interim version of the protocol, limited to transfer of ASCII   files, was developed by Chander Ramchandani and Howard Brodie of   Project MAC.  The ideas of transactions, descriptors, error recovery,   aborts, file headings and attributes, execution of programs, and use   of data types, pathnames, and default mechanisms are new here.   Howard Brodie and Neal Ryan have coded the interim protocol in the   PDP-10 and the 645, respectively.   [2] The network system survey was conducted last fall by Howard   Brodie of Project MAC, primarily by telephone.   [3] PDP-10 Reference Handbook, page 306.Bhushan                                                        [Page 15]RFC 114                 A FILE TRANSFER PROTOCOL           16 April 1971   [4] We considered using two full-duplex links, one for control   information, the other for data.  The use of a separate control link   between the cooperating processes would simplify aborts, error   recoveries and synchronization.  The synchronization function may   alternatively be performed by closing the connection (in the middle   of a transaction sequence) and reopening it with an abort message.   (The use of INR and INS transmitted via the NCP control link has   problems as mentioned by Kalin in RFC 103.)  We prefer the latter   approach.   [5] Identifying users through use of socket numbers is not practical,   as unique user identification numbers have not been implemented, and   file systems identify users by name, not number.   [6] This subject is considered in detail by Bob Metcalfe in a   forthcoming paper.   [7] Filler bits may be necessary as particular implementations of   NCP's may not allow the free communication of bits.  Instead the   NCP's may only accept bytes, as suggested in RFC 102.  The filler   count is needed to determine the boundary between transactions.   [8] 72-bits in descriptor field are convenient as 72 is the least   common multiple of 6, 8, 9, 18, 24 and 30, the commonly encountered   byte sizes on the ARPA network host computers.   [9] The execute request is intended to facilitate the indirect   execution of programs and subroutines.  However, this request in its   present form may have only limited use.  A subroutine or program   mediation protocol would be required for broader use of the execute   feature.  Metcalfe considers this problem in a forthcoming paper.   [10] The pathname idea used in Multics is similar to that of labels   in RFC 76 by Bouknight, Madden and Grossman.   [11] We, however, urge the use of standard network ASCII.   [12] The exact manner in which the input and output are transmitted   would depend on specific mediation conventions.  Names of input and   output files may be transmitted instead of data itself.   [13] The transactions (including terminate) are not "echoed", as   echoing does not solve any "hung" conditions.  Instead time-out   mechanisms are recommended for avoiding hang-ups.   [14] The data type mechanism suggested here does not replace data   reconfiguration service suggested by Harslem and Heafner in RFC 83   and NIC5772.  In fact, it complements the reconfiguration.  ForBhushan                                                        [Page 16]RFC 114                 A FILE TRANSFER PROTOCOL           16 April 1971   example, data reconfiguration language can be expressed in EBCDIC,   Network ASCII or any other code that form machine may "recognize".   Subsequent data may be transmitted binary, and the form machine would   reconfigure it to the required form.  I have included in data types,   a large number suggested by Harslem and Heafner, as I do not wish to   preclude interpretation, reconfiguration and storage of simple forms   of data at individual host sites.   [15] The internal character representation in the hosts may be   different even in ASCII.  For example PDP-10 stores 7-bit characters,   five per word with 36th bit as don't care, while Multics stores them   four per word, right-justified in 9-bit fields.   [16] It seems that socket 1 has been assigned to logger and socket 5   to NETRJS.  Socket 3 seems a reasonable choice for the file transfer   process.   [17] The term program mediation was suggested by Bob Metcalfe who is   intending to write a paper on this subject.         [ This RFC was put into machine readable form for entry ]             [ into the online RFC archives by Ryan Kato 6/01]Bhushan                                                        [Page 17]

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?