Re: returning results for partial downloads

Michael Rogers <[email protected]>
Newsgroups gmane.network.gnutella.devel
Message-ID <[email protected]>
Serguei Osokine wrote:
> 	Nice to see someone doing some math on that subject. However,
> after the first cursory reading I was not able to understand - what
> is it exactly  that you are aiming to maximize? Is it your goal to 
> maximize the cumulative upload rate of the network, or you also 
> want to divide it between the downloaded in some fair way? What
> is your definition of fair, if this is the case? I mean, you need
> to calculate a single one-dimensional value (call it the algorithm
> quality or utility) for each algorithm to compare them, right? What 
> is this value and how is it calculated?

Hi Serguei,

Each node is selfishly trying to maximise the number of bytes downloaded
per byte uploaded - the expected utility of uploading a byte is the
number of bytes you can expect to download in return, based on the
number of bytes uploaded to and downloaded from each peer so far. I've
tended to interpret that in terms of maximising the download speed for a
given upload speed, but as far as I can see you could use the same
strategies to minimise the upload speed for a given download speed.

Because there's no explicit choke/unchoke signalling and the utilities
are cheap to calculate, the selection could be made very frequently
(send a packet, choose the recipient of the next packet, repeat).

I haven't explicitly aimed to maximise the total download speed, but I'm
hoping the best selfish strategies will also be Pareto efficient as in
the prisoner's dilemma. Fairness is harder, especially since there seem
to be two contradictory definitions - "equal benefit for all" or
"benefit proportional to contribution" - so I tend to steer clear of
that word. ;-)

In terms of comparing strategies, you could compare bytes downloaded per
byte uploaded or bytes downloaded in a given time.

Cheers,
Michael
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.