[comp.protocols.tcp-ip] Does FTP Define A C Level Protocol?

Will@cup.portal.com (Will E Estes) (04/27/91)

Does the FTP definition include a C level protocol?  I assume that
it does, but I'd like additional information.  I need to build
a user-friendly file transfer front-end to part of an application,
but I would also like to make use of the underlying FTP protocol
to do the file transfer over TCP.  How is the calling interface
FTP currently defined, and where can I read about this definition?

Thanks,
Will Estes        Internet: Will@cup.portal.com
                  UUCP: apple!cup.portal.com!Will

henry@zoo.toronto.edu (Henry Spencer) (04/28/91)

In article <41713@cup.portal.com> Will@cup.portal.com (Will E Estes) writes:
>Does the FTP definition include a C level protocol?

The FTP definition defines the bytes on the wire, not at the C or user
level.  Although it's a non-trivial protocol, there is nothing stopping
you from implementing it however you wish.  RFC959 is the basic defining
document, although a look at RFC1123's FTP section is in order first.
-- 
And the bean-counter replied,           | Henry Spencer @ U of Toronto Zoology
"beans are more important".             |  henry@zoo.toronto.edu  utzoo!henry

romkey@ASYLUM.SF.CA.US (John Romkey) (04/29/91)

The FTP specification defines only the protocol. In general, Internet
protocol specifications define the actual protocol, and sometimes list
requirements of an API for the protocol, but don't actually specify
the API. Most FTP implementations jumble together the actual protocol
implementation, the API to FTP (if there's even one) and the interface
to the OS.

The only specific API for FTP that I know of is for an FTP library
that I wrote for FTP Software a long time back. It's specified in the
documentation for FTP (Software)'s dev kit, which includes the
library. I think you can buy the dev kit manuals separately if you
want. I know FTP Software considers the API to be non-proprietary.
		- john romkey			Epilogue Technology
USENET/UUCP/Internet:  romkey@asylum.sf.ca.us	voice/fax: 415 594-1141

bob@MORNINGSTAR.COM (Bob Sutterfield) (04/29/91)

   From: Will@cup.portal.com (Will E Estes)
   Date: 26 Apr 91 22:30:29 GMT

   Does the FTP definition include a C level protocol?  ... How is the
   calling interface FTP currently defined,

The FTP protocol spec describes octets flying over a TCP connection,
which is routed by IP.  It doesn't care what language you use, nor
specifically how you persuade the octets to fly.

   and where can I read about this definition?

FTP is defined in RFC959.  It is clarified and somewhat expanded in
RFC1123 section 4, which also specifies a user interface but not a
programmer's interface.

Your operating system may provide library calls to manipulate TCP
sockets, which may give you what you want.  Look in the documentation
provided by your software vendor.

dhansen@amiganet.chi.il.us (Dave Hansen) (05/05/91)

>The FTP specification defines only the protocol. In general, Internet
>protocol specifications define the actual protocol, and sometimes list
>requirements of an API for the protocol, but don't actually specify
>the API. Most FTP implementations jumble together the actual protocol
>implementation, the API to FTP (if there's even one) and the interface
>to the OS.
>
>The only specific API for FTP that I know of is for an FTP library
>that I wrote for FTP Software a long time back. It's specified in the
>documentation for FTP (Software)'s dev kit, which includes the
>library. I think you can buy the dev kit manuals separately if you
>want. I know FTP Software considers the API to be non-proprietary.
>		- john romkey			Epilogue Technology
>USENET/UUCP/Internet:  romkey@asylum.sf.ca.us	voice/fax: 415 594-1141
For a simple user interface, the demand for API is not there.  Unless you're
host is non-multitasking, the easiest solution is to pipe <stdin and >stdout
to FTP.  The most challenging part of this is to get a password into the
login, as many FTP's break out of stdin for the password prompt.  Depending on
the application, this may not be a big deal, after all, it's what security is
all about.  With my Encore (nee:Gould, nee: SEL) hosts, we developed such a
pipe of FTP commands.  The user gets one prompt, Password:, then the stdin
pipe continues with the transfer list.  Our Amiga workstations connected to
these Encore hosts use the Rexx language to interface an Amiga screen editor
with the ethernet FTP and send the user and password without this
intervention.  You can parse FTP's stdout for errors/success and translate
into a user friendly message.

voice: (708)691-4747             Internet:dhansen@amiganet.chi.il.us