Saturday, December 18, 2004 - Posts

Saturday, December 18, 2004
first impressions of bittorrent

finally got around to playing with bittorrent [this faq seems a bit out of date,but still very thorough].  i had that mindwalk file to share, and it was a low key tv night, so it seemed like a good thing to do to look and see what i could get.

very smooth.  but i had a couple comments:

  • if multiple concurrent (upload) torrent tasks are running, and there is an imbalance in demand, there is a strong tendency for the less demanded torrents to get shut out altogether.  attempting to remedy this by throttling the higher demand file results in inefficient bandwidth use, but at least the obscure file gets served that way.  it's almost equivalent to an ftp server like that, in that there are multiple clients pulling from few - or one - server.  although they will shortly begin trading with each other, once the pieces are dispersed in a balanced manner.
  • it makes sense to get upload “credit” in toto, not just tit-for-tat for each file.  in the example above, i want to throttle the high bandwidth upload to allow the low one more chance of reaching folks.  in the end, this would result in the same total bandwidth use, but is actually more onerous since the low demand offering will need to remain up for longer (since there are less pulls).  and it also provides more of a community service; what's one more seed among thousands, especially if it interferes with providing other worthwhile stuff.  then again, that reflects a particular value system.  still, the result as things stand will be that one would appear to be slacking on the popular uploads, while the obscure heroic effort goes unnnoticed.

    then again, it's all pretty much self regulated anyway, and my feel for the subject is that this sort of indirect reciprocity 1 is worthwhile.

  • the distribution algorithm uses a random selection of file pieces, and that does not seem to result in the most efficient distribtution scheme.  i would need to run simulations on this, but i suspect a more intelligent algorithm would be better, one where the dispersion of pieces is tracked such that a higher priority is placed on the distribution of scarcer pieces, resulting in more virtual copies in the net much sooner.  stare at this simulation for a while, playing with different balances and timing of seeds v. peers.  i wonder how accurate the sim is.  if it is, then i wonder how hard it would be to play with different algorithms in the code (and modify it it to spit out stats as well).  or i could fire up mathematica; that would take some work.  and i suppose that the application of analytic operations research techniques could solve the problem as well, but i think running a sim is a better approach.  or even running lab tests using the actual software.

of course, these are the observations of a complete newbie, so there may well be reponses to all of it already.  i'm not stopping looking around; i'll post more when i find it.  like maybe after investigating the bt protocol's creator's site.


1 i can get a lot of mileage from that term.  got it from an edge.org mailing.  which reminds me how much language is an integral part of worldview. etc.

Posted by fractalnavel at 11:52 PM | with no comments
Filed under: