Ftp-WG: Re: MLST draft - NUL CR LF again

"Gregory A Lundberg" <[email protected]>
Newsgroups gmane.ietf.ftpext
Message-ID <[email protected]>
> >Now, if you want to DROP the requirement that FTP work with a normal
Telnet
> >client, that's fine.  But, if you do, expect inter-operation problems
with
> >existing implementations.
>
> I'm trying hard to find that requirement in the RFCs.  RFC 959 specifies
in
> several places that the control connection follows the Telnet protocol,
but
> it (and RFC 1123) further defines several places where behaviour is
> different.  Where there is such a contradiction, it would seem that the
> obvious conclusion is that RFC 959, and the FTP sections of RFC 1123, win
> out over Telnet.  Perhaps this deserves being stated somewhere, but I
don't
> think this is ambiguous.



RFC 959, page 1, paragraph 1 "INTRODUCTION" ...

   FTP, though usable directly by a user at a terminal, is
   designed mainly for use by programs.

The "terminal" being referred to here is the Telnet NVT.  This is
a "may" statement: "A Telnet user MAY directly use the FTP."


RFC 959, page 7, "TERMINOLOGY" ...

   user

   A person or a process on behalf of a person wishing to obtain
   file transfer service.  The human user may interact directly
   with a server-FTP process, but use of a user-FTP process is
   preferred since the protocol design is weighted towards
   automata.

This already is a "may" statement, followed by a "should": "A
human user MAY interact directly with a server-FTP process, but
SHOULD use a user-FTP process since the protocol design is
weighted towards automata."



RFC 959, page 8, paragraph 2, "THE FTP MODEL" ...

   The user may establish a direct control connection to the
   server-FTP, from a TAC terminal for example, and generate
   standard FTP commands independently, bypassing the user-
   FTP process.

The term "TAC terminal" here is historical and unfortunate.  It
owes to copying this section from older versions.  With the
advent of Telnet, the physical "TAC terminal" was replaced with
the NVT.

We cannot get must more clear than this.  The clear intention
is that the user-FTP process is OPTIONAL.

Interaction with the server-FTP is through the control
connection.  The control connection follows the Telnet
protocol.  Therefore, the tool to use to bypass the
user-FTP process is a user Telnet implementation.



RFC 959, page 9 ...

   The Relationship between FTP and Telnet:

   The FTP uses the Telnet protocol on the control connection.
   This can be achieved in two ways: first, the user-PI or the
   server-PI may implement the rules of the Telnet Protocol
   directly in their own procedures; or, second, the user-PI or
   the server-PI may make use of the existing Telnet module in the
   system.

   Ease of implementaion, sharing code, and modular programming
   argue for the second approach.  Efficiency and independence
   argue for the first approach.  In practice, FTP relies on very
   little of the Telnet Protocol, so the first approach does not
   necessarily involve a large amount of code.

This informs us that NOT ONLY can we bypass the user-FTP process,
but an FTP implementation (server- OR user-) MAY its own internal
implementation of the Telnet protocol, or it MAY use an existing
Telnet module provided by the host system.

While some hosts may provide a link-time module which an FTP
implementation can use, the most widely available Telnet module
is the user Telnet implementation.  On Unix, for example, this
module is generally called the 'telnet command'.

Given the relationship described here, a perfectly good (albeit
slow) server-FTP could be implemented using nothing more than
'expect' scripts and the 'telnet' command.  While doing a
server-FTP in 'expect' is probably something few have ever
considered, implementing a user-FTP in 'expect' and 'telnet' is
uncommon but has been done.  Implementing a user-FTP with 'shell'
scripts using the 'telnet' command is common enough that I get
several questions a year pertaining to it.



There are probably several more citations I could make, but I think these
are enough.  Besides, it's time to put the kids to bed, and I have a
contract out-of-town for the next few days so I need to get to bed early and
hit the road tomorrow ...
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.