Quote:
Originally posted by Abaris
If techniques such as segmented downloading would spread over the Gnutella Network, it would be a great damage rather than progress. People would share no more than they do now, but they would consume two or three times as many upload slots. The result: It would become even harder to find available mirrors. As explained in my last post, segmentation only works if there are enough available Candidates. However, if many users use segmentation, they will dramatically decrease the number of available Candidates and therefore using segmentation only works if it is used by a small minority. Spreading on the Network, it wouldn't work any more. |
Actually, if you're talking about simultaneous downloads from multiple hosts, I think that's a great idea (and something I've been expecting to happen). It's the next logical step once you have multiple servers grouped for a file.
Also I don't think it would be any worse for uploads because while it's true the it would fill more upload slots, those slots would stay occupied for a correspondingly shorter period of time. On the whole the average number of slots available at any given time shouldn't decrease from such a feature.
The hard part is coming up with a good strategy since host vary in speed so much and often abort before finishing. One idea I had was since there's no real penalty to the server if a client closes the connection prematurely (the server just closes also and gets on with life), you could try something like this...
* First connection requests entire file
* Second connection requests from 50% to end of file.
* Third requests from 25% to end of file
* Fourth requests from 75% to end of file.
* And so on...
Key point is all requests are made from some starting point always to the end of the file (rather than up to the next starting point). This way they can continue on if the other connection drops.
Another feature of this is if a download thread hits the point where another one starts it can do one of two things a) just stop there or b) continue on if it's much faster than the other thread and would probably beat it to the end (the overtaken connection would be dropped).
(note this is reposted from a different thread of mine in the Gnotella forum)