FTP Operation Over Big Address Records (FOOBAR)
RFC 1639

Document Type RFC - Experimental (June 1994; No errata)
Obsoletes RFC 1545
Author David Piscitello 
Last updated 2013-03-02
Stream Legacy
Formats plain text html pdf htmlized bibtex
Stream Legacy state (None)
Consensus Boilerplate Unknown
RFC Editor Note (None)
IESG IESG state RFC 1639 (Experimental)
Telechat date
Responsible AD (None)
Send notices to (None)
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.


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


   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.


   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

   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
     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
Show full document text