udp retrieval protocol

"Lester Vecsey" <[email protected]> Wed, 28 Apr 2004 13:50:49 -0400
Newsgroups gmane.mail.im2000
Message-ID <003201c42d49$57c223e0$66246c42@simulation>
From :http://cr.yp.to/im2000.html:

--
How should messages be identified? How should messages be downloaded?
Messages could be retrieved through HTTP, but an NFS/FSP-style UDP-based
protocol would be much more resistant to denial of service.
--

The page also brings up questions about how messages should be identified. I
would like to see a few of us spec out an example udp packet layout that
would for initial test purposes just include a small identity number such as
size 32 bits that points to a unique message on that server, followed by a
single byte that the client could set to a command that represents ``get'',
and optionally followed by a byte range for the portion of the message to
retrieve. The first packet returned from the server would tell the client if
the message of requested identity number exists, and it'll include the size
of the message along with the start of the message content. The client would
have to acknowledge that it received the data by requesting the next range.
Client backoff policy would be incorporated here, so if the client doesn't
hear from the server after 4 seconds, it'll still send another range request
and can increment a counter but if it doesn't hear back again it'll wait 16
seconds before sending again, and so on.

A few of us would come up with these test servers and put some messages in
them, and write clients to talk to them, basically a set of unix utils that
talk to the server, and also an smtp or pop3 front end so you can put this
in front of Outlook express to send and retrieve messages that way too. You
could run the front end under daemontools on a unix machine for your
network, or, a small windows binary using mingw could be built for strictly
windows users that want to run this entirely on their own windows machine or
windows network. In either case, Outlook express talks to the front end,
which in turn does the real communication with the udp based im2000 server.

Now, is anyone here familiar with Bit Torrent?
http://bitconjurer.org/BitTorrent/

I wonder if the UDP based denial of service resistance could be taken a step
further using the techniques mentioned in the BitTorrent paper.
Specifically, this would be very useful for the case of a mailing list with
many people retrieving the same daily message as the load would be
distributed without a single point of failure.

Lester