• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

RFC1639 - FTP Operation Over Big Address Records (FOOBAR)

发布: 2007-6-23 14:09 | 作者:   | 来源:   | 查看: 14次 | 进入软件测试论坛讨论

领测软件测试网

   
  Network Working Group D. Piscitello
Request for Comments: 1639 Core Competence, Inc.
Obsoletes: 1545 June 1994
Category: Experimental

FTP Operation Over Big Address Records (FOOBAR)

Status of this Memo

This memo defines an Experimental Protocol for the Internet
community. This memo does not specify an Internet standard of any
kind. Discussion and suggestions for improvement are requested.
Distribution of this memo is unlimited.

Abstract

This paper describes a convention for specifying address families
other than the default Internet address family in FTP commands and
replies.

Introduction

In the File Transfer Protocol (STD 9, RFC959), the PORT command
argument <host-port> specifies the data port to be used to establish
a data connection for FTP (STD 9, RFC959). This argument is also
used in the PASV reply to request the server-DTP to listen on a data
port other than its default data port. This RFCspecifies a method
for assigning addresses other than 32-bit IPv4 addresses to data
ports through the specification of a "long Port (LPRT)" command and
"Long Passive (LPSV)" reply, each having as its argument a <long-
host-port>, which allows for additional address families, variable
length network addresses and variable length port numbers.

This is a general solution, applicable for all "next generation" IP
alternatives, as well as for other network protocols than IP. This
revision also extends FTP to allow for its operation over transport
interfaces other than TCP.

Acknowledgments

Many thanks to all the folks in the IETF who casually mentioned how
to do this, but who left it to me to write this RFC. Special thanks
to Rich Colella, Bob Ullmann, Steve Lunt, Jay Israel, Jon Postel,
Shawn Ostermann, and Tae Kyong Song, who contributed to this work.

1. Background

The PORT command of File Transfer Protocol allows users to specify an
address other than the default data port for the transport connection
over which data are transferred. The PORT command syntax is:

PORT <SP> <host-port> <CRLF>

The <host-port> argument is the concatenation of a 32-bit internet
<host-address> and a 16-bit TCP <port-address>. This address
information is broken into 8-bit fields and the value of each field
is transmitted as a decimal number (in character string
representation). The fields are separated by commas. A PORT command
is thus of the general form "PORT h1,h2,h3,h4,p1,p2", where h1 is the
high order 8 bits of the internet host address.

The <host-port> argument is also used by the PASV reply, and in
certain negative completion replies.

To accommodate larger network addresses anticipated for all IP "next
generation" alternatives, and to accommodate FTP operation over
network and transport protocols other than IP, new commands and reply
codes are needed for FTP.

2. The LPRT Command

The LPRT command allows users to specify a "long" address for the
transport connection over which data are transferred. The LPRT
command syntax is:

LPRT <SP> <long-host-port> <CRLF>

The <long-host-port> argument is the concatenation of the following
fields;

o an 8-bit <address-family> argument (af)

o an 8-bit <host-address-length> argument (hal)

o a <host-address> of <host-address-length> (h1, h2, ...)

o an 8-bit <port-address-length> (pal)

o a <port-address> of <port-address-length> (p1, p2, ...)

The initial values assigned to the <address-family> argument take the
value of the version number of IP (see Assigned Numbers, STD 2, RFC
1340); values in the range of 0-15 decimal are thus reserved for IP

and assigned by IANA. Values in the range 16-255 are available for
the IANA to assign to all other network layer protocols over which
FTP may be operated.

Relevant assigned <address-family> numbers for FOOBAR are:

Decimal Keyword
------ -------
0 reserved
1-3 unassigned
4 Internet Protocol (IP)
5 ST Datagram Mode
6 SIP
7 TP/IX
8 PIP
9 TUBA
10-14 unassigned
15 reserved
16 Novell IPX

The value of each field is broken into 8-bit fields and the value of
each field is transmitted as an unsigned decimal number (in character
string representation, note that negative numbers are explicitly not
permitted). The fields are separated by commas.

A LPRT command is thus of the general form

LPRT af,hal,h1,h2,h3,h4...,pal,p1,p2...

where h1 is the high order 8 bits of the internet host address, and
p1 is the high order 8 bits of the port number (transport address).

3. The LPSV Command

The L(ONG) PASSIVE command requests the server-DTP to listen on a
data port other than its default data port and to wait for a
connection rather than initiate one upon receipt of a transfer
command. The response to this command includes the address family,
host address length indicator, host address, port address length, and
port address of the listener process at the server. The reply code
and text for entering the passive mode using a long address is 228
(Interpretation according to FTP is: positive completion reply 2yz,
connections x2z, passive mode entered using long address xy8).

The suggested text message to accompany this reply code is:

228 Entering Long Passive Mode
(af, hal, h1, h2, h3,..., pal, p1, p2...)

4. Permanent Negative Completion Reply Codes

The negative completion reply codes that are associated with syntax
errors in the PORT and PASV commands are appropriate for the LPRT and
LPSV commands (500, 501). An additional negative completion reply
code is needed to distinguish the case where a host supports the LPRT
or LPSV command, but does not support the address family specified.

Of the FTP function groupings defined for reply codes (syntax,
information, connections, authentication and accounting, and file
system), "connections" seems the most logical choice; thus, an
additional negative command completion reply code, 521 is added, with
the following suggested textual message:

521 Supported address families are (af1, af2, ..., afn)

Where (af1, af2, ..., afn) are the values of the version numbers of
the "next generation" or other protocol families supported. (Note: it
has been suggested that the families could also be represented by
ASCII strings.)

5. Rationale

An explicit address family argument in the LPRT command and LPSV
reply allows the Internet community to experiment with a variety of
"next generation IP" and other network layer protocol alternatives
within a common FTP implementation framework. (It also allows the use
of a different address family on the command and data connections.)
An explicit length indicator for the host address is necessary
because some of the IPNG alternatives make use of variable length
addresses. An explicit host address is necessary because FTP says
it's necessary.

The decision to provide a length indicator for the port number is not
as obvious, and certainly goes beyond the necessary condition of
having to support TCP port numbers.

Currently, at least one IPng alternative (TP/IX) supports longer port
addresses. And given the increasingly "multi-protocol" nature of the
Internet, it seems reasonable that someone, somewhere, might wish to
operate FTP operate over Appletalk, IPX, and OSI networks as well as
TCP/IP networks. (In theory, FTP should operate over *any* transport
protocol that offers the same service as TCP.) Since some of these
transport protocols may offer transport selectors or port numbers
that exceed 16 bits, a length indicator may be desirable. If FTP must
indeed be changed to accommodate larger network addresses, it may be
prudent to determine at this time whether the same flexibility is
useful or necessary with respect to transport addresses.

6. Conclusions

The mechanism defined here is simple, extensible, and meets both IPNG
and multi-protocol internet needs.

7. References

STD 9, RFC959 Postel, J., and J. Reynolds, "File Transfer Protocol",
STD 9, RFC959, USC/Information Sciences Institute,
October 1985.

STD 2, RFC1340 Reynolds, J., and J. Postel, "Assigned Numbers",
STD 2, RFC1340, USC/Information Sciences Institute,
July 1992. (Does not include recently assigned IPv7
numbers).

STD 3, RFC1123 Braden, R., Editor, "Requirements for Internet
Hosts - Application and Support", STD 3, RFC1123,
USC/Information Sciences Institute, October 1989.

8. Security Considerations

Security issues are not discussed in this memo.

9. Author's Address

David M. Piscitello
Core Competence, Inc.
1620 Tuckerstown Road
Dresher, PA 19025

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网