分享
 
 
 

RFC430 - Comments on File Transfer Protocol

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

Network Working Group R. Braden

Request for Comments: 430 CCN/UCLA

NIC: 13299 7 February 1973

COMMENTS ON FILE TRANSFER PROTOCOL

On January 23, 1973, Jon Postel (NMC), Eric Harslem (RAND), Stephen

Wolfe (CCN), and Robert Braden (CCN), held and informal meeting at

UCLA on FTP. This RFCgenerally reports the consensus of that

meeting on the following issues: server-server transfers (ref. RFC

438 by Thomas and Clements); site-dependent information; and

miscellaneous questions/disagreements with RFC354, 385, and 414.

There was also a discussion of the print file muddle, but that

subject is addressed in a separate RFC, No. 448.

Miscellaneous Comments on FTP

1. RFC385, P. 1 (3)

The question of print files will be discussed at length in another

RFC. However, we did feel that the Word "still" on the second

line from the bottom of Page 1 is gratuitous.

2. RFC385, P. 2 (5.)

RFC385, P. 3 (8.)

RFC414, P. 4 (11.i)

To the extent that we understand these items, they seem to be

unnecessary and probably undesirable concessions to particular bad

implementations ("hacks"). In reference to the second item, No. 8

in RFC385, one should note that in an asynchronous multi-process

system like the ARPA Network, the phrase "immediately after" has

little meaning. An implementation which depends upon "immediately

after" is erroneous and should be fixed. If the protocol as

defined has an intrinsic race condition, of course, the protocol

should be fixed, but we don't believe such a problem exists. It

would help if definitions of command-response sequences in the FTP

document were tightened up considerably. As for the last item, we

don't understand why Wayne Hathaway is so strongly opposed to

"implied eor".

3. RFC354, P. 13, Format Definitions for Block Mode

(a) The definition of the header length presumably is meant to be

the "smallest integral number of bytes whose length is greater

or equal to 24 bits".

(b) The same definitional problem occurs for restart markers.

(c) Why does the restart marker have to be greater than 8 bits?

(d) Note that changing the Descriptor coding to bit flags would

abolish the implied eor as well as the problem of RFC385, P.

2, #6.

4. RFC414, P. 5 (11.iii)

Note that text mode is not possible for any EBCDIC coded file.

Since EBCDIC is an 8-bit code, Telnet control characters

(128-255) cannot be used to distinguish either eor or eof.

Stream and block modes will work, however. We have found the

diagram on the last page to be useful for keeping track of the

three-dimensional space of FTP parameters.

5. RFC354, P. 17, PASS Command

There is no mechanism within FTP for changing a password. A

user shouldn't have to use a different protocol (e.g., log

into a time sharing system) to merely change his password.

6. RFC385, P. 3 (9.), TYPE Before BYTE

This admonition (to send TYPE before BYTE) should be clearly

labeled as a recommended procedure for user FTP, not a restriction

on a server FTP.

7. RFC385, P. 2-3 (7) Order of 255 Reply

Some of the participants felt (strongly) that the timing problem

dealt with in this item is the result of bad NCP implementations

and ought not be dignified in the protocol. The issue here is the

old, familiar, and touchy one of queueing RFC's or not. (My own

view is that the protocol asymmetry forced by NCP's which can't

queue RFC's is at least unaesthetic, and makes some elegant

solutions impossible. For examples, see RFC414 and the comments

below on server-server interaction, and RFC438 on Reconnection

Protocol).

8. RFC354, P. 15, Restart

Following a RESTart command, APPend and STORe presumably have

identical meanings.

B. FTP Parameter Encoding

RFC448, which discusses print files, points out that the print file

attribute is logically independent of the character code attribute

(ASCII vs. EBCDIC) in the type dimension; the set of allowable types

in FTP is the outer product of the individual attributes. Thus FTP

has (at least) four character types, summarized by the following two

x two matrix:

ASCII EBCDIC

---------------+---------+------------

Not Print File

---------------+---------+------------

Print File

---------------+---------+------------

I propose that the encoding in the TYPE command model this

interdependence of the types. Instead of using a distinct single

ASCII character for each type, we should use multiple ASCII

characters---qualifiers, if you wish. For example:

A represents ASCII code

E represents EBCDIC code

P represents print file

I represents image

L represents local byte

Then the legal types according to RFC385 would be:

A

AP

E

EP

I

L

Note that the attributes under consideration here are type-like; they

are not (logically) concerned with the structure or the transmission

mode, only the internal encoding of the file.

At present, this would be a trivial change. However, I foresee the

file transfer protocol eXPanding significantly over the next several

years as new types are added. Some servers will want to add server-

specific type variations, and the NWG will want to add some. How

about an APL character set? Or the multiple-overlay 256 character

ASCII which has been proposed? Multiple qualifiers (and later

perhaps more structure) in the type seems to be the cleanest escape

mechanism for future growth.

C. Server-Server Interaction

The FTP changes proposed by Thomas and Clements in RFC438 are a

particular solution to a general problem inherent in the current

host-host protocol and higher-level protocols like FTP. There seems

to be a need for a secure and simple way for two (server) processes

in different hosts to exchange socket names (i.e., 40-bit numbers) so

they can subsequently exchange RFC's and establish a connection.

Current second-level (host-host) protocol provides exactly one

(secure) mechanism by which one host can learn a socket name of a

process at another host in order to establish a connection: ICP. The

ICP mechanism by itself is not adequate for server-server connection

in FTP. Therefore, Thomas and Clements have proposed an extension to

the FTP protocol, roughly as follows:

(1) A controller ("user") process at Host A uses ICP to invoke and

establish Telnet control connections to two automata

("server") processes at two other hosts. An automaton process

invoked in this manner then executes controller commands sent

in a standard command language over the Telnet control

connection.

(2) The controller process commands each automaton to reserve a

suitable data transfer socket and to return the socket name to

the controller over the control connection. An automaton

presumably negotiates with his own NCP in a host-dependent

manner to oBTain the socket reservation.

(3) The controller now knows both data transfer socket names; he

will send them in subsequent commands to the automata so each

automaton will know the foreign socket name to which he is to

connect. Later commands cause the automata to issue RFC's and

open the data connection as needed.

This appears to be useful general model for process-process

interaction over the Network. Personally, I believe this symmetrical

model should be the basis of all FTP the controller and one of the

automata could be in the same host. Then the user/server problem

(for any pair of hosts to transfer files, one must have a server FTP

and the other a user FTP) would vanish. At least one host somewhere

in the Network would need a controller process; all other hosts would

need only an automaton process.

Perhaps at a future time the NWG should consider whether a socket-

reservation-and-passing mechanism ought to be incorporated into

second-level protocol rather than duplicated in a number of third-

level protocols. We should note that this model provides secure

sockets only if both user and server processes "release" the socket

reservations when the Telnet control connection breaks. The same

problem seems to occur with Thomas' Reconnection Protocol (426).

In any case, for the present we would endorse the general third-level

model of RFC438. However, we would propose a slightly different,

and more symmetrical, approach.

1. The requirement in FTP that the FTP user listen on the data

socket before issuing a data transfer command should be

removed. The beauty of host-host protocol is that it doesn't

matter which host sends the first RFC, as long as they both

send matching RFC's "eventually". (Timeouts, of course, are

annoying, but I believe they are workable and ultimately

unavoidable); queueing RFC's is also necessary).

2. We propose, instead of LSTN, a new command GETSocket. The

controller (i.e., user FTP) process would send a GETSocket to

each automaton, probably after a successful login. Upon

receiving GETSocket, an automaton would assign a (send,

receive) pair of data transfer sockets and return the numbers

over the Telnet connection. (Alternatively, FTP could specify

that a (send, receive) pair of sockets always be assigned when

the server is first entered, and the numbers returned to the

user process via unsolicited 255 replies).

3. Then the user process would send the socket numbers to the

opposite hosts by sending SOCK commands to both.

4. When it receives a data transfer command, the automaton

(server) process would issue an RFCcontaining the two socket

numbers. When both servers are fired up, RFC's are exchanged

and data transfer starts.

D. Site-Dependent FTP Parameters

Some hosts will have a problem with the current FTP because their

file system needs additional host-specific parameters in certain

cases. As an example, the IBM operating systems tend to give the

programmer a number of options on the logical and physical mapping of

a file onto the disk.

This is true both of TSS/360 (see Wayne Hathaway's discussion of his

STOR command implementation, Page 5 of RFC418), and OS/360. The

large set of options and parameters to the OS/360 file system is, in

fact, the (legitimate) origin of most complaints about OS Job Control

Language (JCL).

If the FTP user merely wants to store data without using it at one of

these sites, he has no problem; defaults can be chosen to handle any

reasonable FTP request. However, the FTP user who sends a file to an

IBM/360 for use there may need to specify local file system

parameters which are not derivable from any of the existing FTP

commands.

In designing an FTP server implementation for CCN, for example, we

first tried to handle the mapping problem by choosing a (possibly

different) default mapping for each combination of FTP parameters--

type, mode, and structure. We hoped that if a user chose

"reasonable" or "suitable" FTP parameters for a particular case

(e.g., "ASCII, stream, record" for source programs, and "image,

block, record" for load modules), then the right OS/360 file mapping

would result. We were forced to abandon this approach, however,

because of the following arguments:

1. Some user FTP's probably may not implement all FTP

type/mode/structure combinations (though they ought to!).

2. Some user FTP's may not give the user full or convenient

control over his type/mode/structure. Indeed, the mode should

be chosen on grounds of efficiency, not end use.

3. There weren't enough logically distinct combinations of FTP

parameters.

4. The result would have been a set of hard-to-remember rules for

sending files to CCN for use here.

5. Some common cases require non-invertible transformations on the

data. For example, most IBM language processors (i.e.,

compilers) accept only fixed length records of (surprise!) 80

bytes each, i.e., literal card images. Such ugly (and

logically unnecessary) implementation stupidities in OS/360 are

a fact of life. Now if a FTP user innocently sent a data file

to CCN with the particular type/mode combination which

defaulted to card images, he would find his records truncated

to 80 bytes. That would be downright unfriendly.

Thus, the CCN server FTP would have to choose between being useful or

being friendly. We decided upon the following strategy:

1. The defaults will be friendly; we will accept any FTP

type/mode/structure and store it invertibly (except print

files). However, the user who uses only these defaults will

probably find he has to later run a utility under TSO to

reformat the data.

2. We will provide some mnmonic keywords associated with STOR

commands to choose the proper disk mapping. For example, if he

wants to STORe a Fortran source file for compilation at CCN,

the user will need only to specify "SOURCE" or "FORT" to get

reasonable and workable OS/360 file system parameters. In

addition, we will provide fairly complete "DD" parameters for

the sophisticated user. The syntax and semantics of these

keywords and parameters will be as close as possible to the

corresponding TSO commands. Full details will be published as

soon as the implementation is working.

All of this discussion leads to a general protocol question: how

should such host-dependent information appear within FTP? Hathaway

used the ALLO command (see RFC418, P. 6). CCN, on the other hand,

feels that such information belongs in the only part of FTP syntax

which is already host-dependent: the pathname. So CCN plans to allow

a "generalized" pathname in a STOR command, a (full or partial) file

name optionally followed by one or keywords or keyword parameters

separated by commas.

A third possible solution might be for the user to precede his STORe

command by a server-dependent data set creation command, using

Hathaway's proposed SRVR command. The data set creation command

could then have all the parameters necessary for the server file

system. CCN might change to this approach if SRVR is adopted and if

people find the generalized pathname objectionable or unworkable.

For another interesting example of host-dependent problems, see

Hathaway's discussion of his DELE command in RFC418 (pp.6-7).

+-------++-------+-------+-------++-------+-------+-------++

\ MODE

\ STREAM TEXT BLOCK STREAM TEXT BLOCK

TYPE \

+-------++-------+-------+-------++-------+-------+-------++

ASCII

+-------++-------+-------+-------++-------+-------+-------++

/////// //////////////

IMAGE /////// //////////////

/////// //////////////

+-------++-------+-------+-------++-------+-------+-------++

LOCAL /////// //////////////

BYTE /////// //////////////

/////// //////////////

+-------++-------+-------+-------++-------+-------+-------++

/////// ///////

EBCDI /////// ///////

/////// ///////

+-------++-------+-------+-------++-------+-------+-------++

ASCII//////////////////////

ASA /////////////////////

VRC /////////////////////

+-------++-------+-------+-------++-------+-------+-------++

EBCDIC////////////////////// ///////

ASA ///////////////////// ///////

VRC ///////////////////// ///////

///////////////////// ///////

+-------++-------+-------+-------++-------+-------+-------++

KEY:

+---+

/// Excluded

+---+ case

[This RFCwas put into machine readable form for entry]

[into the online RFCarchives by Helene Morin, Via Genie, 12/99]

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有