FTP Operation Over Big Address Records (FOOBAR)
RFC 1545

Document Type RFC - Experimental (November 1993; No errata)
Obsoleted by RFC 1639
Last updated 2013-03-02
Stream Legacy
Formats plain text pdf html bibtex
Stream Legacy state (None)
Consensus Boilerplate Unknown
RFC Editor Note (None)
IESG IESG state RFC 1545 (Experimental)
Telechat date
Responsible AD (None)
Send notices to (None)
Network Working Group                                      D. Piscitello
Request for Comments: 1545                                      Bellcore
Category: Experimental                                     November 1993

            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 longer addresses in
   the PORT command.

Introduction

   This RFC specifies a method for assigning long addresses in the
   HOST-PORT specification for the data port to be used in establishing
   a data connection for File Transfer Protocol, FTP (STD 9, RFC 959).
   This is a general solution, applicable for all "next generation" IP
   alternatives, and can also be extended to allow FTP 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, Shawn Ostermann, Steve Lunt, and Brian
   Carpenter who had the time and decency to comment on the initial
   draft.  :-)

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

Piscitello                                                      [Page 1]
RFC 1545                  FTP Over Big Address             November 1993

   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.

   To accommodate larger network addresses anticipated for all IP "next
   generation" alternatives, new commands and reply codes are needed for
   FTP.  This memo addresses these needs.

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 <address-family> argument takes the value of the version number
   of IP (see Assigned Numbers, STD 2, RFC 1340), or generally speaking,
   an Internet layer protocol.  Relevant assigned IPng version numbers
   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

Piscitello                                                      [Page 2]
RFC 1545                  FTP Over Big Address             November 1993

   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 this server is listening on.  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 textual message to accompany this reply code is:

      228 Entering Long Passive Mode (af,hal,h1,h2,h3,h4...,pal,p1,p2...)
Show full document text