hpa at zytor
Jun 6, 2007, 4:15 PM
Post #6 of 11
> On 6/6/07, H. Peter Anvin <hpa [at] zytor> 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.
SYSLINUX mailing list
Submissions to SYSLINUX [at] zytor
Unsubscribe or set options at:
Please do not send private replies to mailing list traffic.