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