rfc454.txt
来自「RFC 的详细文档!」· 文本 代码 · 共 1,488 行 · 第 1/5 页
TXT
1,488 行
0 Two lines
1 To first line of the next page
+ No advance
In addition to the above four, there are more characters (defined in
Appendix C, RFC 189) which represent an IBM extension to the ASA
standard.
It should be noted that a serving host need not accept all represen-
tation types and/or byte sizes, but it must inform the user request-
ing an unacceptable type or size of this fact by sending an appropri-
ate reply.
III.C. File Structure and Transfer Modes
The only file structures supported directly in FTP at the present
time are record structures. However, the use of record structures is
not mandatory. A user with no record structure in his file should be
McKenzie [Page 11]
RFC 454 File Transfer Protocol July 1972
able to store and retrieve his file at any HOST. A user wishing to
transmit a record structured file must send the appropriate FTP
'STRU' command (the default assumption is no record structure). A
serving HOST need not accept record structures, but it must inform
the user of this fact by sending an appropriate reply. Any record
structure information in the data stream may subsequently be dis-
carded by the receiver.
All data transfers must end with an EOF. The EOF is defined by the
data transfer mode. For files that have record structures, an EOR is
also defined by the transfer mode. Only the transfer modes and
representation type combinations that have EOR defined may be used
for transfer of files with record structures. Records may be of zero
length but they must be contained in file boundaries. The relation-
ship between files and records is hierarchical but an EOF does not
imply an EOR.
The following data transfer modes are defined in FTP:
1. Stream The file is transmitted as a stream of bytes of the
specified byte size. The EOF is signaled by closing
the data connection. Any representation type and
byte size may be used in the stream mode with file
structure, but use of record structure limits the
type to ASCII or EBCDIC with or without Printfile
format. The convention is that the ASCII character
CR (Carriage Return, Code 15 (octal)) followed by LF
(Line Feed, Code 12 (octal)) indicates an EOR for
ASCII representation type, and the EBCDIC character
NL (New Line, Code 15 (hex)) indicates an EOR for
EBCDIC type. This is the default mode, and it is
recommended that this mode be implemented by all.
2. Text The file is ASCII text transmitted as a sequence of
8-bit bytes in the ASCII representation type, and
optional Printfile format. Record structures are
allowed in this mode. The EOR and EOF are defined by
the presence of special "TELNET-control" codes (,ost
significant bit set to one) in the data stream. The
EOR code is 192 (octal 300, hex CO). The EOF code is
193 (octal 301, hex C1). The byte size for transfer
is 8 bits.
(For ASCII type, text and stream modes are almost identical.)
McKenzie [Page 12]
RFC 454 File Transfer Protocol July 1972
Comparing the two, the advantages of "stream" mode are:
1) The receiver need not scan the incoming bytes.
2) It is usable with all data types.
and the disadvantages are:
1) Closing the data connection under error conditions can be
misconstrued as an EOF in stream mode when in fact the data
transfer was interrupted. In text mode the EOF is sent expli-
citly.
2) If record structure is specified in stream mode then CRLF
implies EOR, and in order for CRLF to be sent as valid data it
must be transformed, e.g., into CR NUL LF or LF CR.
3. Block The file is transmitted as a series of data blocks
preceded by one or more header bytes. The header
bytes contain a count field, and descriptor code.
The count field indicates the total length of the
data block in bytes, thus marking the beginning of
the next data block (there are no filler bits). The
descriptor code defines last file block (EOF), last
record block (EOR), restart marker (see Section
III.D), or suspect data (i.e., the data being
transferred is suspected of errors and is not reli-
able). Record structures are allowed in this mode,
and any representation type or byte size may be used.
The header consists of the smallest integral number
of bytes whose length is greater than or equal to 24
bits. Only the _least_ significant 24 bits (right-
justified) of header shall have information; the
remaining most significant bits are "don't care"
bits. Of the 24 bits of header information, the 16
low order bits shall represent byte count, and the 8
high order bits shall represent descriptor codes as
shown below.
Integral data bytes >= 24
+---------------+---------------+--------------+
| Don't care | Descriptor | Byte Count |
| 0 to 231 bits | 8 bits | 16 bits |
+---------------+---------------+--------------+
McKenzie [Page 13]
RFC 454 File Transfer Protocol July 1972
The following descriptor codes are assigned:
Code Meaning
---- -------
0 An ordinary block of data.
1 End of data block is EOR.
2 End of data block is EOF.
3 Suspected errors in data block.
4 Data block is a restart marker.
In the use of block mode it is possible for two or
more conditions requiring different descriptor codes
(suspected errors and either end of record or end of
file) to exist simultaneously. Such a possibility
may be handled by sending a separate EOR or EOF block
with a zero byte count. (This is allowed by the pro-
tocol.)
The restart marker is embedded in the data stream as
an integral number of 8-bit bytes (representing
printable ASCII characters) right-justified in an
integral number of data bytes greater than 8 bits.
For example if the byte size is 7 bits, the restart
marker byte would be one byte right-justified per two
7-bit bytes as shown below:
Two 7-bit bytes
+----------+------------+
| | Marker Char|
| | 8 bits |
+----------+------------+
For byte size of 16 bits or more, two or more marker
bytes shall be packed right-justified. The end of
the marker may be delimited by the character SP (code
32.). If marker characters do not exactly fit an
integral byte, the unused character slots should con-
tain the ASCII character SP (code 32.). For example,
to transmit a six character marker in a 36-bit byte
size, the following three 36-bit bytes would be sent:
McKenzie [Page 14]
RFC 454 File Transfer Protocol July 1972
+-------------+-------------+---------------+
| Don't care | Descriptor | |
| 12 bits | code=4 | Byte count=2 |
+-------------+-------------+---------------+
+----+---------+---------+--------+---------+
| | Marker | Marker | Marker | Marker |
| | 8 bits | 8 bits | 8 bits | 8 bits |
+----+---------+---------+--------+---------+
+----+---------+---------+--------+---------+
| | Marker | Marker | SP | SP |
| | 8 bits | 8 bits | 8 bits | 8 bits |
+----+---------+---------+--------+---------+
4. Hasp
The file is transmitted as a sequence of 8-bit bytes
in the standard Hasp-compressed data format (document
to be issued by Bob Braden, UCLA). This mode
achieves considerable compression of data for print
files. Record structures are allowed in the Hasp
mode.
The following matrix summarizes the legal combinations of file
transfer parameters. The decimal integers represent legal byte sizes
for each particular STRU-MODE-TYPE-FORM grouping absence of a number
implies illegality. Note that HASP mode is not included since it has
never been defined.
STRU F | R
+-------------------------------+-----+-----+------+
TYPE |\ MODE | | | |
| \ | | | |
| \ S T B | S | T | B |
| FORM +--------+-----+---------+-----+-----+------+
A | U | 8 | 8 | 8 | 8 | 8 | 8 |
| +--------+-----+---------+-----+-----+------+
| P | 8 | 8 | 8 | 8 | 8 | 8 |
----+------+--------+-----+---------+-----+-----+------+
E | U | 8 | | 8 | 8 | | 8 |
| +--------+-----+---------+-----+-----+------+
| P | 8 | | 8 | 8 | | 8 |
----+------+--------+-----+---------+-----+-----+------+
I | U | 1-255 | | 1-255 | | |1-255 |
----+------+--------+-----+---------+-----+-----+------+
L | U | 1-255 | | 1-255 | | |1-255 |
----+------+--------+-----+---------+-----+-----+------+
McKenzie [Page 15]
RFC 454 File Transfer Protocol July 1972
III.D Error Recovery and Restart
There is no provision for detecting bits lost or scrambled in data
transfer. This issue is perhaps handled best at the NCP level where
it benefits most users. However, a restart procedure is provided to
protect user from system failures (such as failure of either HOST,
FTP-process, or the IMP subnet).
The restart procedure is defined only for the block mode of data
transfer. It requires the sender of data to insert a special marker
code in the data stream with some marker information. The marker
information has meaning only to the sender, but must consist of
printable ASCII characters. The printable ASCII characters are
defined to be octal codes 41 through 176 (i.e., not including codes 0
through 37 and the characters SP and DEL). The marker could
represent a bit-count, a record-count, or any other information by
which a system may identify a data checkpoint. The receiver of data,
if it implements the restart procedure, would then mark the
corresponding position of this marker in the receiving system, and
return this information to the user.
In the event of a system failure, the user can restart the data
transfer by identifying the marker point with the FTP restart pro-
cedure. The following examples illustrate the use of the restart
procedure.
1. When server is the sender of data, the server-FTP process inserts
an appropriate marker block in the data stream at a convenient
data point. The user-FTP process, receiving the data, marks the
corresponding data point in its file system and conveys the last
known sender and receiver marker information to the user. In the
event of system failure, the user or user-FTP process restarts
the server at the last server marker by sending a restart command
with the server's marker code as its argument. The restart com-
mand is transmitted over the TELNET connection and is immediately
followed by the command (such as store or retrieve) which was
being executed when the system failure occurred.
2. When user is the sender of data, the user-FTP process inserts the
appropriate marker block in the data stream. The server-FTP pro-
cess, receiving the data, marks the corresponding data point in
its file system. The server does not store this marker but con-
veys the last known sender and receiver marker information to the
user over the TELNET connections by appropriate reply codes. The
user or the user-FTP process then restarts transfer in a manner
identical to that described in the first example.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?