[net.unix-wizards] Trivial File Transfer Protocol

don@allegra.UUCP (D. Mitchell) (05/22/84)

Has anyone used TFTP on 4.2bsd?  Everything else works fine, but when
we started up /etc/tftpd and tried to use tftp, it just gives "Error
code 2: Access violation".

Is it worth it?  FTP gets about 60 Kbytes/sec between two of our
780's.  That isn't bad, but ftp rides on top of gigantic TCP.  It seems
wasteful to have a virtual circuit protocol under a file transfer
protocol.  tftp runs directly on IP, but of course it executes its
protocol in user mode, so I really don't know if it will be faster.

lwa@MIT-MRCLEAN.ARPA (05/24/84)

From:  Larry Allen <lwa@MIT-MRCLEAN.ARPA>

The TFTP that's been supplied with 4.2 bsd is an old version, originally from
4.1a, which doesn't work at all as distributed.  We've modified it here to
work properly, if you're interested.

I think you miss the point of TFTP, however.  It's intended to be a @i[Trivial]
File Transfer protocol, suitable for implementation (for example) in bootstrap
ROMs, on small personal computers, and so forth.  It uses a very simple, ack-
per-packet scheme for windowing.  The result is performance running about
1/3 to 1/4 that of FTP.  You certainly should not expect any performance
improvement from using it.

A couple of other minor factual points: TFTP actually uses UDP (the user
datagram protocol), rather than running directly on IP.  UDP provides the
process-level addressing ("ports") which IP lacks.  Both TFTP and FTP
run in user mode, so all data being transferred must be copied from the
kernel out to user space and back in to the kernel.
					-Larry

phil@RICE.ARPA (05/24/84)

From:  William LeFebvre <phil@RICE.ARPA>

Another major difference between FTP and TFTP is that TFTP doesn't
attempt any sort of protection checking.  Anything it reads from a
remote machine must be world readable and anything it writes to a local
machine must be world writable (or be in a directory that is world
writable if the file doesn't already exist).  FTP forces its user to
log in and will use that username for permission/protection checking at
the other end.  When I first read the message from ...!allegra!don, I
thought that that might be his problem, but it could also just be that
it doesn't work (since hardly anyone ever uses it).

                                William LeFebvre
				Department of Computer Science
				Rice University
                                <phil@Rice.arpa>