Researchers Create Selfish BitTorrent Client
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."
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.
I am trolling
First some crap clients allow easy tunneling of torrents through tor network (http://tor.eff.org/), nearly choking it, and now this.
'Once scientists, even the dim-witted social scientists, get muzzled, the Western Civilization is finished.' - oldhack
Yes, problem is it's similar to changing UserAgent tag in IE or FireFox. Too easy. It's not very viable solution.
"an experienced, industrious, ambitious, and often, quite often, picturesque liar" - Mark Twain
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.
read the article, it will actually help uploads be more efficient.
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
Never trust the client.
I'm surprised it took this long.
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.
Do Or Do Not, There Is No Spoon, There Is Only Zuul. Everything in the above post is probably opinion.
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.
Test your net with Netalyzr
Clicky to pirate bay
"I may be full of crap about this game, and I may be wrong, and that's fine." -Jack Thompson
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.
If there is one thing to be learned on slashdot, it has to be sarcasm.
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
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.
B itTyrant.pdf [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.
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
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.
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.
I just don't trust anything that bleeds for five days and doesn't die.
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.
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.
Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
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.
09F91102 no, 455FE104 nope, F190A1E8 uh-uh, 7A5F8A09 that's not it, C87294CE no. Ah! 452F6E403CDF10714E41DFAA257D313F.
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.