Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×
The Internet

Researchers Create Selfish BitTorrent Client 281

An anonymous reader writes "Researchers from the computer science department at the University of Washington have released BitTyrant, a new BitTorrent client that is designed to improve download performance via strategic selection of peers and upload rates. Their results call into question the effectiveness of BitTorrent's tit-for-tat reciprocation strategy which was designed to discourage selfish users. Clients are available for Windows, OS X, and Linux."
This discussion has been archived. No new comments can be posted.

Researchers Create Selfish BitTorrent Client

Comments Filter:
  • Not really selfish (Score:5, Informative)

    by m50d ( 797211 ) on Wednesday January 03, 2007 @11:48AM (#17444862) Homepage Journal
    It looks like all it's doing is trying to allocate its uploads more efficiently. Which, assuming it works, should improve things overall, and (if it works) may even get adopted into the official protocol.
  • Just great (Score:1, Informative)

    by Werrismys ( 764601 ) on Wednesday January 03, 2007 @11:48AM (#17444864)
    First some crap clients allow easy tunneling of torrents through tor network (http://tor.eff.org/ [eff.org]), nearly choking it, and now this.
  • by jackharrer ( 972403 ) on Wednesday January 03, 2007 @11:50AM (#17444910)
    Yes, problem is it's similar to changing UserAgent tag in IE or FireFox. Too easy. It's not very viable solution.
  • by discord5 ( 798235 ) on Wednesday January 03, 2007 @11:53AM (#17444946)
    AFAIK, all bittorrent clients have a "UserAgent"-kind of field. If that happens to be BitTyrant, ban the user.

    If it's anything like a browsers UserAgent field, I have a set of WWW::Mechanize perl scripts pretending to be firefox 2.0 on windows.

  • by Anonymous Coward on Wednesday January 03, 2007 @11:53AM (#17444952)
    read the article, it will actually help uploads be more efficient.
  • by tdc_vga ( 787793 ) on Wednesday January 03, 2007 @11:55AM (#17444974)
    No offense, but that can be spoofed quite easily. Make it say BitTorrent, uTorrent, or Azureus and then what? As the co-founder of Azureus this has always been a problem and threat to the BT protocol. The best clients can do is make sure packets are being spread once they're sent to another person. The algorithm works like this --send a "rare" packet, watch to make sure another client shows up with that rare packet in X time. Clients should send their rarest packets first, to keep the swarm happy. So if the packet doesn't show up, you've got a leech and your drop him in the Queue. TdC
  • Rule #1 (Score:1, Informative)

    by sqlrob ( 173498 ) on Wednesday January 03, 2007 @11:56AM (#17444978)
    Never trust the client.

    I'm surprised it took this long.
  • by Thansal ( 999464 ) on Wednesday January 03, 2007 @12:03PM (#17445076)
    RTFA

    That is exactly what the client does

    basucly it alocated upload so that it will likely improve performance, if it can not come up with a spot that will improve performance then it will dump that alocation on other users.

    The only downside is that peopel who would hit and run can do so faster.
  • Ummm... it doesn't? (Score:5, Informative)

    by Xenographic ( 557057 ) on Wednesday January 03, 2007 @12:21PM (#17445358) Journal
    It doesn't trust the client. It's just greedier about allocating "spare" bandwidth--that is, bandwidth the other clients can't pay you back for. From their FAQ:

    Q: How is BitTyrant different from existing BitTorrent clients?

    BitTorrent differs from existing clients in its selection of which peers to unchoke and send rates to unchoked peers. Suppose your upload capacity is 50 KBps. If you've unchoked 5 peers, existing clients will send each peer 10 KBps, independent of the rate each is sending to you. In contrast, BitTyrant will rank all peers by their receive / sent ratios, preferentially unchoking those peers with high ratios. For example, a peer sending data to you at 20 KBps and receiving data from you at 10 KBps will have a ratio of 2, and would be unchoked before unchoking someone uploading at 10 KBps (ratio 1). Further, BitTyrant dynamically adjusts its send rate, giving more data to peers that can and do upload quickly and reducing send rates to others.
  • by nweaver ( 113078 ) on Wednesday January 03, 2007 @12:21PM (#17445362) Homepage
    BitTyrant (read the paper) [i]follows the protocol[/i].

    From any other peer, you can't tell whether someone is using the BitTyrant bandwidth selection strategy or the default allocatino strategy, and user agent is, of course, meaningless.
  • Torrent of Client (Score:3, Informative)

    by FinchWorld ( 845331 ) on Wednesday January 03, 2007 @12:27PM (#17445482) Homepage
    ...because there connection seems a little slow now (a friend was getting but 0.2KB/s).

    Clicky to pirate bay [thepiratebay.org]

  • Re:azureus fork (Score:2, Informative)

    by deroby ( 568773 ) <deroby@yucom.be> on Wednesday January 03, 2007 @12:54PM (#17445940)
    It's amazing what can be found in that something typically referred to as 'the article' : ...
    [Overview] ...
    Familiar - BitTyrant is based on modifications to Azureus 2.5, currently the most popular BitTorrent client. All of our changes are under the hood. You'll find the GUI identical to Azureus, with optional additions to display statistics relevant to BitTyrant's operation. ...

  • not so selfish (Score:1, Informative)

    by Anonymous Coward on Wednesday January 03, 2007 @01:11PM (#17446220)
    OK, I downloaded the app and ran a test - an 815M movie file, 634 seeds, 3186 leechers. Test file was pr0n from a chinese server.

    My configuration was 1000kB/sec upload, the highest allowed by the setup wizard. I'm on a 100Mb connection so can easily handle that. Everything else default.

    It's not so selfish. After connecting normally and downloading initial data at a trickle, my client began uploading at a huge rate - 500kB/sec - a level which continued to rise to the life of the download. The upload rate seemed to "spike" a lot, generally describing a sawtooth pattern on my bandwidth monitor - whether it was the program doing this or something else, I don't know. Anyway, it uploaded like mad, regularly up to the 1 megabyte per second upload cap.

    Downloading was fairly slow, certainly no more than I would have expected from regular azureus. It picked up speed slowly through the download but seemed, if anything, to take longer than usual to hit its "stride". Of course it is impossible for me to provide a "control download" to compare, I'm just going on personal experience here.

    The download finished after 45 minutes and 48 seconds, which is not all that slow but nowhere near the maximum possible. I regularly see speeds of over 1MB/sec from this "cloud" but speed never exceeded 600kB/sec, and usually much slower. Still, an average of 300 kilobytes a second was not so bad, and who knows, maybe it's faster than azureus alone could have done. I cannot help but feel, however, that it did not go as fast as usual - I am accustomed to much higher speeds from sources like this.

    And finally, it completed the download with a ratio of around 1.6, then continued seeding after completion. Hardly "selfish".

    So, as always, take the claims with a grain of salt. After seeing the lack of performance here, I certainly won't be switching from regular azureus, I encourage you to peform your own tests. My reference link was here: http://www7.2kdown.com/link.php?ref=BjgWaTvsmP [2kdown.com]
  • by Holmwood ( 899130 ) on Wednesday January 03, 2007 @01:49PM (#17446818)
    From the 'article' (really just a brief overview), it's clear that it will generally at present improve performance for the BitTyrant user; it will also statistically improve performance for any peer with substantial spare upload capacity, regardless of client used.

    This paper http://www.cs.washington.edu/homes/piatek/papers/B itTyrant.pdf [washington.edu] [cs.washington.edu] goes into considerably more detail, and is well worth reading if you have a nodding acquaintance with the BT protocol and elementary game theory.

    It probably will initially hurt performance for users with saturated upload capacity who cannot contribute any more to the swarm than they are at present.

    It's not at all clear that this is a bad thing, even if everyone switched to BTyrant. A lot could come down to the social behavior of Tyrant users once they become seeders, for example. If a Tyrant keeps a torrent active as long as s/he presently does, it would clearly be an improvement. For those who say "well a tyrant user may not even seed to 1.0"; fine; that Tyrant user won't really benefit much from the protocol.

    Holmwood
  • Trying it out now (Score:4, Informative)

    by Culturejammer ( 541174 ) <landeyda@NoSPaM.gmail.com> on Wednesday January 03, 2007 @01:57PM (#17446964)
    Gotta say, these speeds are really impressive. Azureus 2.5 would download at about 35kb/s, while the same torrent on BitTyrant is 400kb/s. I use a private torrent network, so I'll have to make up for the ratio afterwards; but still, it's great to get things so quickly.
  • Trying out now (Score:2, Informative)

    by Simon (S2) ( 600188 ) on Wednesday January 03, 2007 @03:05PM (#17448074) Homepage
    It does not seem to be really faster, but I notice that my upload speed is at 0 a lot of the time, when with the regular Azureus my upload speed was about always maxed out. It runns just since a few hours, so don't take my comment to serious.
  • by Bertie ( 87778 ) on Wednesday January 03, 2007 @03:59PM (#17449014) Homepage
    I dunno. Seems to me that with ADSL and particularly cable connections here in the UK, downstream bandwidth has gone up and up while upstream hasn't changed so much. For instance, one provider offers 10Mb/s downstream, but only 512k upstream.
  • by swillden ( 191260 ) * <shawn-ds@willden.org> on Wednesday January 03, 2007 @04:05PM (#17449118) Journal

    I have a question: Why the hell is bittorrent so slow? I have a 8MB connection and it downloads slower than I used to get on 56k over non-bittorrent.

    Most likely it's misconfiguration on your part. Specifically, you're behind router doing network address translation or a firewall that is blocking inbound connections on the key ports.

    In order for you to get good download performance you have to upload at a reasonable rate (at least with clients other than BitTyrant). To do that, you have to make it possible for other peers to connect to your machine.

    Odds are it's a NAT problem. See if you can configure your router to forward incoming TCP and UDP packets on ports 6881-6889 to your computer. Even easier, if your router supports Universal Plug-n-Play (UPNP), get a client that does (like Azureus) and tell it to use UPNP. That will allow the client to automatically tell the router how to configure itself.

    Once you get the network configuration right, you also need to make sure your upstream connections are choking your downloads, as can happen with braindead ISPs (i.e. pretty much all phone and cable companies). Use your client's upload rate configuration parameter and set it to a little less than the upstream rate that your connection provides. I have 384kbps upload rate and I find I can send as much as 35KBps without trouble.

    I have a 5Mbps connection, and I routinely get 500KBps on popular torrents.

  • by complete loony ( 663508 ) <Jeremy@Lakeman.gmail@com> on Wednesday January 03, 2007 @06:54PM (#17451658)
    "as can happen with braindead ISP"

    It can happen on any ISP. This is a limitation of TCPIP and the upload buffers in all the devices on the network behind your worst bottleneck.

    When TCP decides it can send more data, it dumps a whole window size load of packets onto the network. These will clog up your modem / router's transmit buffers. Normally not a huge drain, but if you're uploading to a number of hosts this can add significant lag for the small ACK packets you have to send periodically. If you can't send an ACK to the hosts you're downloading from, they'll stop sending more data since they will think that your download bandwidth is saturated.

    To avoid this, without a modem / router that can prioritise the smaller ACK packets, simply limit your bittorrent client to just below your actual maximum upload bandwidth. The uTorrent client has a nice bandwidth graph, watch it for a while. If your upload traffic has lots of peaks jumping up and down somewhat close to your maximum available bandwidth, then you are trying to send too much data at once. This flooding your connection, and you are then forced to wait for it to clear again. Reduce your upload limit gradually until the graph appears flat. Then you are probably not saturating your connection anymore and you're smaller ACK packets wont be held up as much on the network.

  • by Rodyland ( 947093 ) on Wednesday January 03, 2007 @09:16PM (#17452908)
    The nice thing about BitTyrant is that this strategy only works if everybody else is using different BitTorrent tools

    I believe you're wrong. From my reading, the BitTorrent system/network world would work better if everybody used BitTyrant, as the leechers would get pushed right to the bottom of the priority queue.... Please correct me if I misunderstood what BitTyrant is about.

The key elements in human thinking are not numbers but labels of fuzzy sets. -- L. Zadeh

Working...