[syslinux] tftpd-hpa feature suggestion

H. Peter Anvin hpa at zytor.com
Wed Jun 6 16:15:10 PDT 2007


omri wrote:
> On 6/6/07, H. Peter Anvin <hpa at zytor.com> wrote:
>> This is a frequently suggested feature, but it's technologically tricky.
> 
> Can you explain some more? I was thinking about writing a simple tftpd
> to do this. Why is this tricky?
> 

Because the TFTP protocol doesn't guarantee that you can distingush
between an incoming request and a retransmission of an old request.
There is no way to tell the other end to wait (I have sketched on a
protocol extension to do that.)  The end result is that you can get a
load storm on the server, especially since a lot of TFTP clients don't
properly implement backoff.

Additionally, some TFTP clients -- including virtually all PXE clients
-- do multiple transfers and get unhappy if they get different results
(plus the additional server load.)

One suggestion on this mailing list was to restrict the generator in
such a way that each query has to be idempotent (same input -> same
output.)  That would allow the query results to be cached, and therefore
avoid the load storm problem (you would not spawn a second generator for
the same contents, but just hold the request.)

I have somewhere on my list to implement that, but tftp-hpa is a bad
codebase for it, so I'm planning to do it as a ground-up rewrite using
modern Unix features, unlike tftp-hpa which is intended to run on
anything vaguely Unix in order to increase the least common denominator.

	-hpa




More information about the Syslinux mailing list