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, RFC 959), the PORT command
argument <host-port> specifies the data port to be used to establish
a data connection for FTP (STD 9, RFC 959). 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 RFC specifies 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.
Piscitello [Page 1]
RFC 1639 FTP Over Big Address June 1994
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
Piscitello [Page 2]
RFC 1639 FTP Over Big Address June 1994
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