rfc454.txt
来自「RFC 的详细文档!」· 文本 代码 · 共 1,488 行 · 第 1/5 页
TXT
1,488 行
2) a site where a user-FTP process is located, 3)
a site to which a data connection is made by a
server. In the normal case, the sites defined by
1, 2, and 3 are the same site, but nothing in FTP
requires that this be so.
user-FTP process A process or set of processes which perform the
function of file transfer in cooperation with a
server-FTP process. The user-FTP process 1)
initiates the ICP (via a user-TELNET), 2)
initiates FTP commands and 3) "listens" on the
data socket for the data connection. In some
obvious cases (use from TIPs and other mini-
HOSTs) a user-FTP process will be subsumed under
the term "user".
user-TELNET A TELNET process which initiates an ICP to a
specified server-TELNET socket, and performs in
accordance with the ARPANET TELNET protocol.
II.B The FTP Model
With the above definitions in mind, the following model (shown in
Figure 1) may be diagramed for an FTP service.
In the model described in Figure 1, the user-TELNET initiates the
TELNET connections. Standard FTP commands are then generated by the
user and transmitted to the server site via the TELNET connections.
FTP commands are in ASCII, in accordance with NVT conventions and the
TELNET protocol. Note that commands may be initiated by the user
directly through the user-TELNET or via a user-FTP process. Standard
replies are sent from the server to the user in response to the
commands over the TELNET connections.
McKenzie [Page 6]
RFC 454 File Transfer Protocol July 1972
The FTP commands specify the parameters for the data connection (data
socket, byte size, transfer mode, representation type, and format)
and the nature of file system operation (store, retrieve, append,
delete, etc.). The user-FTP process or its designate should "listen"
on the specified data socket, and it is the server's responsibility
to initiate the data connection and data transfer in accordance with
the specified data connection parameters. It should be noted that
the data socket need not be in the same HOST that initiates the FTP
commands via the TELNET connections, but the user or his user-FTP
process must ensure a "listen" on the specified data socket. A
practical example of such file transfer to third HOSTs is a maxi-HOST
user (who may actually be a TIP user) wishing to transmit a file to
or from an I/O device attached to a TIP. It should also be noted
that two data connections, one for send and the other for receive,
may exist simultaneously.
TELNET
Connections
+-----+ +-------+ +------+ +------+ +-------+ +-----+
| File|<->|Server-|<->|Server|<----------|User |<->|User- |<->|File |
|Sys | |FTP | |TELNET| FTP Cmds |TELNET| |FTP | |Sys- |
| -tem| |Process| | |---------->| | |Process| | tem |
+-----+ | | +------+FTP Replies+------+ | | +-----+
| | | |
| |<------------------------------->|Data |
| | Data Connection(s) |Socket |
+-------+ +-------+
|
|
+------+
| |
| USER |
| |
+------+
Notes: 1. The data connection may be in either direction.
2. The data connection need not exist all of the time.
3. The distinctions between user-FTP and user-TELNET, and
between server-FTP and server-TELNET may not be as
clear-cut as shown above. For example, a user-TELNET may
be directly driven by the user.
FIGURE 1 Model for FTP Use
McKenzie [Page 7]
RFC 454 File Transfer Protocol July 1972
The protocol requires that the TELNET connections be open while data
transfer is in progress. It is the responsibility of the user to
close the TELNET connections when finished using the FTP service.
The server may abort data transfer if the TELNET connections are
closed.
III. DATA TRANSFER FUNCTIONS
Data and files are transferred only via the data connection. The
transfer of data is governed by FTP data transfer commands received
on the TELNET connections. The data transfer functions include
establishing the data connection to the specified data socket in the
specified HOST (using the specified byte size), transmitting and
receiving data in the specified representation type and transfer
mode, handling EOR and EOF conditions, and error recovery (where
applicable).
III.A Establishing Data Connection
The user site shall "listen" on the specified data socket, prior to
sending a transfer request command. The FTP request command
determines the direction of data transfer, and the socket number (odd
or even) which is to be used in establishing the data connection.
The server on receiving the appropriate store or retrieve request
shall initiate the data connection to the specified user data socket
in the specified byte size (default byte size is 8 bits), and send a
reply indicating that file transfer may proceed. Prior to this
reply, the server should send a reply indicating the server socket
for the data connection. The user may use this server socket
information to ensure the security of his data transfer. The server
may send this reply either before or after initiating the data
connection.
The byte size for the data connection is specified by the BYTE
command. It is not required by the protocol that servers accept all
possible byte sizes. The use of various byte sizes is for efficiency
in data transfer and servers may implement only those byte sizes for
which their data transfer is efficient. It is, however, required
that servers implement at least the byte size of 8 bits.
After the data transfer is completed, it is the server's
responsibility to close the data connection, except when the user is
sending the data. In stream mode the sender must close the data
connection to indicate EOF, i.e., completion of the transfer.
Closing the connection is a server option except under the following
conditions:
McKenzie [Page 8]
RFC 454 File Transfer Protocol July 1972
1) The server receives an abort command from the user.
2) The socket or the byte size specification is changed by the
user.
3) The TELNET connections are closed.
4) An irrecoverable error condition occurs.
It should be noted that if none of the above conditions occur it is
possible to maintain two simultaneous data connections, for send and
receive.
III.B Data Representation and Storage
Data is transferred from a storage device in sending HOST to a
storage device in receiving HOST. Often it is necessary to perform
certain transformations on the data because data storage representa-
tions in the two systems are different. For example, NVT-ASCII has
different data storage representations in different systems. PDP-10'
s generally store NVT-ASCII as five 7-bit ASCII characters, left-
justified in a 36-bit word. 360's store NVT-ASCII as 8-bit EBCDIC
codes. Multics stores NVT-ASCII as four 9-bit characters in a 36-bit
word. It may be desirable to convert characters into the standard
NVT-ASCII representation when transmitting text between dissimilar
systems. The sending and receiving sites would have to perform the
necessary transformations between the standard representation and
their internal representations.
A different problem in representation arises when transmitting binary
data (not character codes) between HOST systems with different word
lengths. It is not always clear how the sender should send data, and
the receiver store it. For example, when transmitting 32-bit bytes
from a 32-bit word-length system to a 36-bit word-length system, it
may be desirable (for reasons of efficiency and usefulness) to store
the 32-bit bytes right-justified in a 36-bit word in the latter sys-
tem. In any case, the user should have the option of specifying data
representation and transformation functions. It should be noted that
FTP provides for very limited data type representations. Transforma-
tions desired beyond this limited capability should be performed by
the user directly or via the use of the Data Reconfiguration (DRS,
RFC #138, NIC #6715). Additional representation types may be defined
later if there is a demonstrable need.
Data representations are handled in FTP by a user specifying a
representation type. The type may also imply a transfer byte size.
For example, in ASCII representation, the transfer byte size should
be 8 bits, and any other byte size specification will result in
McKenzie [Page 9]
RFC 454 File Transfer Protocol July 1972
cancellation of the transfer request. In image and Local Byte
representations any byte size is possible. The following data
representation types are currently defined in FTP:
1. ASCII The sender converts data from its internal character
representation to the standard NVT ASCII form. The
receiver converts the data from the standard form to
its own internal form. The data is transferred in
the standard form. The transfer byte size must be 8
bits. This type would be used for transfer of text
files. This is the default type, and it is recom-
mended that this type be implemented by all.
2. EBCDIC The sender transfers data using the EBCDIC character
code and 8-bit transfer byte size. This type may be
used for efficient transfer of EBCDIC files between
systems which use EBCDIC for their internal character
representation.
3. Image The sender transforms data from contiguous bits to
bytes for transfer. The receiver transforms the
bytes into bits, storing them contiguously indepen-
dent of the byte size chosen for data transfer. With
record structure and block mode, the server might
need to pad each record for convenient storage. This
padding is allowed at the end of a record, and should
be remembered by the server so it will be stripped
off when the file is retrieved by the user. The pad-
ding transformation should be well publicized by the
server in case the user processes his file at the
server site. Typical uses for the Image type are
transfer of executable programs between like
machines, and transfer of binary (non-text) data. It
is recommended that this type be implemented by all
for some byte size, preferably including the 8 bit
byte size.
4. Local Byte This representation allows for efficient storage,
use, and retrieval of data. The manner in which data
is to be transformed depends on the byte size for
data transfer, and the particular HOST being used.
The transformation scheme for different byte size is
to be well publicized by all server sites. This
transformation shall be invertible (i.e., if a file
is stored using a certain transfer byte size, an
identical file must be retrievable using the same
byte size and representation type). It is the user's
responsibility to keep track of the representation
McKenzie [Page 10]
RFC 454 File Transfer Protocol July 1972
type and byte size used for his transfer. Typical
uses of the Local Byte type are in efficient storage
and retrieval of files, and transfer of structured
binary data. This type may be identical to the Image
type for byte size which are integral multiples of or
factors of the computer word length.
Representation type may also be affected by another attribute, the
format. For example, some printers can use ASA (Fortran) vertical
format control procedures to transform printed data of type ASCII or
EBCDIC. Currently format may take one of two values.
1. Unformatted The representation type as specified is unaffected by
any format transformations. This is the default
value.
2. Printfile The server is to transform data of either ASCII or
EBCDIC type in accordance with ASA (Fortran) vertical
format control standards. The data is to be
transferred in 8-bit bytes.
A discussion of the ASA vertical format control appears in NWG/RFC
189, Appendix C, and in Communications of the ACM, Vol. 7, No. 10, p.
606, October 1964. According to the ASA vertical format control
standards, the first character of a formatted record is not printed
but determines vertical spacing as follow:
Character Vertical Spacing before printing
Blank One line
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?