rfc114.txt

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

TXT
956
字号
Network Working Group                                         A. BhushanRequest for Comments: 114                                MIT Project MACNIC: 5823                                                  16 April 1971                        A FILE TRANSFER PROTOCOLI. Introduction   Computer network usage may be divided into two broad categories --   direct and indirect.  Direct usage implies that you, the network   user, are "logged" into a remote host and use it as a local user.   You interact with the remote system via a terminal (teletypewriter,   graphics console) or a computer.  Differences in terminal   characteristics are handled by host system programs, in accordance   with standard protocols (such as TELNET (RFC 97) for teletypewriter   communications, NETRJS (RFC 88) for remote job entry).  You, however,   have to know the different conventions of remote systems, in order to   use them.   Indirect usage, by contrast, does not require that you explicitly log   into a remote system or even know how to "use" the remote system.  An   intermediate process makes most of the differences in commands and   conventions invisible to you.  For example, you need only know a   standard set of network file transfer commands for your local system   in order to utilize remote file system.  This assumes the existence   of a network file transfer process at each host cooperating via a   common protocol.   Indirect use is not limited to file transfers.  It may include   execution of programs in remote hosts and the transfer of core   images.  The extended file transfer protocol would facilitate the   exchange of programs and data between computers, the use of storage   and file handling capabilities of other computers (possibly including   the trillion-bit store data computer), and have programs in remote   hosts operate on your input and return an output.   The protocol described herein has been developed for immediate   implementation on two hosts at MIT, the GE645/Multics and the PDP-   10/DM/CG-ITS (and possibly Harvard's PDP-10).  An interim version   with limited capabilities is currently in the debugging stage. [1]   Since our implementation involves two dissimilar systems (Multics is   a "service" system, ITS is not) with different file systems (Multics   provides elaborate access controls, ITS provides none), we feel that   the file transfer mechanisms proposed are generalizable.  In   addition, our specification reflects a consideration of other file   systems on the network.  We conducted a survey [2] of network hostBhushan                                                         [Page 1]RFC 114                 A FILE TRANSFER PROTOCOL           16 April 1971   systems to determine the requirements and capabilities.  This paper   is a "first cut" at a protocol that will allow users at any host on   the network to use the file system of every cooperating host.II.  Discussion   A few definitions are in order before the discussion of the protocol.   A file is an ordered set consisting of computer instructions and/or   data.  A file can be of arbitrary length [3].  A named file is   uniquely identified in a system by its file name and directory name.   The directory name may be the name of a physical directory or it may   be the name of a physical device.  An example of physical directory   name is owner's project-programmer number and an example of physical   device name is tape number.   A file may or may not have access controls associated with it.  The   access controls designate the users' access privileges.  In the   absence of access controls, the files cannot be protected from   accidental or unauthorized usage.   A principal objective of the protocol is to promote the indirect use   of computers on the network.  Therefore, the user or his program   should have a simple and uniform interface to the file systems on the   network and be shielded from the variations in file and storage   systems of different host computers.  This is achieved by the   existence of a standard protocol in each host.   Criteria by which a user-level protocol may be judged were described   by Mealy in RFC 91, as involving the notion of logical records,   ability to access files without program modifications, and   implementability.  I would add to these efficiency, extendibility,   adaptability, and provision of error-recovery mechanisms.   The attempt in this specification has been to enable the reliable   transfer of network ASCII (7-bit ASCII in 8-bit field with leftmost   bit zero) as well as "binary" data files with relative ease.  The use   of other character codes, such as EBCDIC, and variously formatted   data (decimal, octal, ASCII characters packed differently) is   facilitated by inclusion of data type in descriptor headings.  An   alternative mechanism for defining data is also available in the form   of attributes in file headings.  The format control characters   reserved for the syntax of this protocol have identical code   representation in ASCII and EBCDIC.  (These character are SOH, STX,   ETX, DC1, DC2, DC3, US, RS, GS, and FS.)Bhushan                                                         [Page 2]RFC 114                 A FILE TRANSFER PROTOCOL           16 April 1971   The notion of messages (the physical blocks of data communicated   between NCP's) is suppressed herein and that of "logical" records and   transactions is emphasized.  The data passed by the NCP is parsed   into logical blocks by use of simple descriptors (code and count   mechanisms) as described in Section III.  The alternative to count is   fixed length blocks or standard end-of-file characters (scan data   stream).  Both seem less desirable than count.   The cooperating processes may be "daemon" processes which "listen" to   agreed-upon sockets, and follow the initial connection protocol much   in the same way as a "logger" does.  We recommend using a single   full-duplex connection for the exchange of both data and control   information [4], and using CLS to achieve synchronization when   necessary (a CLS is not transmitted until a RFNM is received).   The user may be identified by having the using process send at the   start of the connection the user's name information (either passed on   by user or known to the using system) [5].  This user name   information (a sequence of standard ASCII characters), along with the   host number (known to the NCP), positively identifies the user to the   serving process.   At present, more elaborate access control mechanisms, such as   passwords, are not suggested.  The user, however, will have the   security and protection provided by the serving system.  The serving   host, if it has access controls, can prevent unprivileged access by   users from other host sites.  It is up to the using host to prevent   its own users from violating access rules.   The files in a file system are identified by a pathname, similar to   the labels described in RFC 76 (Bouknight, Madden, and Grossman).   The pathname contains the essential information regarding the storage   and retrieval of data.   In order to facilitate use, default options should be provided.  For   example, the main file directory on disk would be the default on the   PDP-10/ITS, and a pool directory would be the default on Multics.   The file to be transferred may be a complete file or may consist of   smaller records.  It may or may not have a heading.  A heading should   contain ASCII or EBCDIC characters defining file attributes.  The   file attributes could be some simple agreed-upon types or they could   be described in a data reconfiguration or interpretation language   similar to that described in RFC 83 (Anderson, Haslern, and Heffner),   or a combination.Bhushan                                                         [Page 3]RFC 114                 A FILE TRANSFER PROTOCOL           16 April 1971   The protocol does not restrict the nature of data in the file.  For   example, a file could contain ASCII text, binary core image, graphics   data or any other type of data.  The protocol includes an "execute"   request for files that are programs.  This is intended to facilitate   the execution of programs and subroutines in remote host computers   [6].III.  SPECIFICATIONS1. Transactions   1A.   The protocol is transaction-oriented.  A transaction is defined         to be an entity of information communicated between cooperating         processes.   1B.   Syntax         A transaction has three fields, a 72-bit descriptor field and         variable length (including zero) data and filler fields, as         shown below.  The total length of a transaction is (72 + data +         filler) bits.   | <code><filler count><NUL><data count><NUL> |    <data><filler>   |   | |____||____________||___||__________||___| |    |____________|   |   |   |         |         |        |       |   |          |          |   | 24-bits   8-bits    8-bits  24-bits  8-bits|    variable length  |   | <-------descriptor field 72-bits---------> |<--data and filler-->|   |                                            |                     |   1C.   Semantics         The code field has three 8-bit bytes.  The first byte is         interpreted as transaction type, the second byte as data type         and the third byte as extension of data type.         The filler count is a binary count of bits used as "filler"         (i.e., not information) at the end of a transaction [7].  As         the length of the filler count field is 8-bits, the number of         bits of filler shall not exceed 255 bits.         The data count is a binary count of the number of data (i.e.,         information) bits in the data field, not including filler bits.         The number of data bits is limited to (2^24-1), as there are 24         bits in the data count field.Bhushan                                                         [Page 4]RFC 114                 A FILE TRANSFER PROTOCOL           16 April 1971         The NUL bytes are inserted primarily as fillers in the         descriptor field and allow the count information to appear at         convenient word boundaries for different word length machines         [8].2.  Transaction Types   2A.   A transaction may be of the following four basic types:         request, response, transfer and terminate.  Although large         number of request and transfer types are defined,         implementation of a subset is specifically permitted.  Host         computers, on which a particular transaction type is not         implemented, may refuse to accept that transaction by         responding with an unsuccessful terminate.         The following transaction type codes are tentatively defined:         Transaction Type                       Transaction Type Code                                             ASCII   Octal   Hexidecimal         Request                 Identify                        I       111     49                 Retrieve                        R       122     52                 Store                           S       123     53                 Append                          A       101     41                 Delete                          D       104     44                 Rename                          N       116     4E                 addname (Plus)                  P       120     50                 deletename (Minus)              M       115     4D                 Lookup                          L       114     4C                 Open                            O       117     4F                 Close                           C       103     43                 Execute [9]                     E       105     45         Response                 ready-to-receive (rr)           <       074     3C                 ready-to-send (rs)              >       076     3E         Transfer                 complete_file                   *       052                 heading                         #       043     23                 part_of_file                    '       054     2C                 last_part                       .       056     2E         Terminate                 successful (pos.)               +       053     2B                 unsuccessful (neg.)             -       055     2DBhushan                                                         [Page 5]RFC 114                 A FILE TRANSFER PROTOCOL           16 April 1971   2B.   Syntax         In the following discussion US, RS, GS, FS, DC1, DC2, and DC3         are the ASCII characters, unit separator (octal 037), record         separator (octal 036), group separator (octal 035), file         separator (octal 034), device control 1 (octal 021), device         control 2 (octal 022), and device control 3 (octal 023),         respectively.  These have an identical interpretation in         EBCDIC.   2B.1  Requests         Identify, retrieve, store, append, delete, open, lookup and         execute requests have the following data field:                       <path name>                Rename request has the data field:                       <path name> GS <name>                Addname and deletename requests have the data field:                       <path name> GS <filenames>         where pathname [10], name and filenames have the following         syntax (expressed in BNF, the metalanguage of the ALGOL 60         report):         <pathname> ::= <device name>|<name>|<pathname>US<name>         <device name> ::= DC1<name>         <name> ::= <char> | <name> <char>

⌨️ 快捷键说明

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