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."
Not really selfish (Score:5, Informative)
Just great (Score:1, Informative)
Re:Well, uhm. Ban the client? (Score:5, Informative)
Re:Well, uhm. Ban the client? (Score:3, Informative)
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.
Re:Well, uhm. Ban the client? (Score:2, Informative)
Re:Well, uhm. Ban the client? (Score:5, Informative)
Rule #1 (Score:1, Informative)
I'm surprised it took this long.
Re:Just use BitTyrant yourself :) (Score:3, Informative)
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)
Sorry, doesn't work... (Score:5, Informative)
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)
Clicky to pirate bay [thepiratebay.org]
Re:azureus fork (Score:2, Informative)
[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)
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]
Re:Well, uhm. Ban the client? (Score:5, Informative)
This paper http://www.cs.washington.edu/homes/piatek/papers/
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)
Trying out now (Score:2, Informative)
Re:Well, uhm. Ban the client? (Score:3, Informative)
Re:Well, uhm. Ban the client? (Score:5, Informative)
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.
Re:Well, uhm. Ban the client? (Score:3, Informative)
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.
Re:Just use BitTyrant yourself :) (Score:2, Informative)
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.