It is a very interesting issue you are raising.
An important thing every gnutella servant should do first of all is to support Keep-Alive. Keep-Alive means that the client can request the http server not to close the connection when the transfer is finished. That means you do not have to start another connection to get another range of the file. Then every servant maker can chose which segmenting scheme to use.
There are different solutions for your question. BearShare requests a 64k (2.5% of the file in latest beta) segment at a time and allways request the next segment needed. That is a simple system that does not require any statistics, but perhaps not the most effective system.
Backwards downloading might be a way in some distand future. It would require changes in Gnutella, http, operating systems and just about everthing. |