home *** CD-ROM | disk | FTP | other *** search
/ Handbook of Infosec Terms 2.0 / Handbook_of_Infosec_Terms_Version_2.0_ISSO.iso / text / rfcs / rfc1639.txt < prev    next >
Text File  |  1996-05-07  |  10KB  |  163 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                      D. Piscitello Request for Comments: 1639                         Core Competence, Inc. Obsoletes: 1545                                                June 1994 Category: Experimental 
  8.  
  9.              FTP Operation Over Big Address Records (FOOBAR) 
  10.  
  11. Status of this Memo 
  12.  
  13.    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. 
  14.  
  15. Abstract 
  16.  
  17.    This paper describes a convention for specifying address families    other than the default Internet address family in FTP commands and    replies. 
  18.  
  19. Introduction 
  20.  
  21.    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. 
  22.  
  23.    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. 
  24.  
  25. Acknowledgments 
  26.  
  27.    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. 
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  Piscitello                                                      [Page 1] 
  34.  RFC 1639                  FTP Over Big Address                 June 1994 
  35.  
  36.  1.  Background 
  37.  
  38.    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: 
  39.  
  40.       PORT <SP> <host-port> <CRLF> 
  41.  
  42.    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. 
  43.  
  44.    The <host-port> argument is also used by the PASV reply, and in    certain negative completion replies. 
  45.  
  46.    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. 
  47.  
  48. 2.  The LPRT Command 
  49.  
  50.    The LPRT command allows users to specify a "long" address for the    transport connection over which data are transferred. The LPRT    command syntax is: 
  51.  
  52.       LPRT <SP> <long-host-port> <CRLF> 
  53.  
  54.    The <long-host-port> argument is the concatenation of the following    fields; 
  55.  
  56.    o  an 8-bit <address-family> argument (af) 
  57.  
  58.    o  an 8-bit <host-address-length> argument (hal) 
  59.  
  60.    o  a <host-address> of <host-address-length> (h1, h2, ...) 
  61.  
  62.    o  an 8-bit <port-address-length> (pal) 
  63.  
  64.    o  a <port-address> of <port-address-length> (p1, p2, ...) 
  65.  
  66.    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 
  67.  
  68.  
  69.  
  70. Piscitello                                                      [Page 2] 
  71.  RFC 1639                  FTP Over Big Address                 June 1994 
  72.  
  73.     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. 
  74.  
  75.    Relevant assigned <address-family> numbers for FOOBAR are: 
  76.  
  77.      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 
  78.  
  79.    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. 
  80.  
  81.    A LPRT command is thus of the general form 
  82.  
  83.       LPRT af,hal,h1,h2,h3,h4...,pal,p1,p2... 
  84.  
  85.    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). 
  86.  
  87. 3.  The LPSV Command 
  88.  
  89.    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). 
  90.  
  91.    The suggested text message to accompany this reply code is: 
  92.  
  93.     228 Entering Long Passive Mode         (af, hal, h1, h2, h3,..., pal, p1, p2...) 
  94.  
  95.  
  96.  
  97. Piscitello                                                      [Page 3] 
  98.  RFC 1639                  FTP Over Big Address                 June 1994 
  99.  
  100.  4.  Permanent Negative Completion Reply Codes 
  101.  
  102.    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. 
  103.  
  104.    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: 
  105.  
  106.       521 Supported address families are (af1, af2, ..., afn) 
  107.  
  108.    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.) 
  109.  
  110. 5.  Rationale 
  111.  
  112.    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. 
  113.  
  114.    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. 
  115.  
  116.    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. 
  117.  
  118.  
  119.  
  120. Piscitello                                                      [Page 4] 
  121.  RFC 1639                  FTP Over Big Address                 June 1994 
  122.  
  123.  6.  Conclusions 
  124.  
  125.    The mechanism defined here is simple, extensible, and meets both IPNG    and multi-protocol internet needs. 
  126.  
  127. 7.  References 
  128.  
  129.    STD 9, RFC 959  Postel, J., and J. Reynolds, "File Transfer Protocol",                    STD 9, RFC 959, USC/Information Sciences Institute,                    October 1985. 
  130.  
  131.    STD 2, RFC 1340 Reynolds, J., and J. Postel, "Assigned Numbers",                    STD 2, RFC 1340, USC/Information Sciences Institute,                    July 1992.  (Does not include recently assigned IPv7                    numbers). 
  132.  
  133.    STD 3, RFC 1123 Braden, R., Editor, "Requirements for Internet                    Hosts - Application and Support", STD 3, RFC 1123,                    USC/Information Sciences Institute, October 1989. 
  134.  
  135. 8.  Security Considerations 
  136.  
  137.    Security issues are not discussed in this memo. 
  138.  
  139. 9.  Author's Address 
  140.  
  141.    David M. Piscitello    Core Competence, Inc.    1620 Tuckerstown Road    Dresher, PA 19025 
  142.  
  143.    EMail: dave@corecom.com 
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.   
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  Piscitello                                                      [Page 5] 
  162.  
  163.