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."
internet bandwidth usage has just gone up by 300% at the University of Washington... Scientists are baffled and blame global warming.
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
If you bothered to RTFA, you'd realise selfish!=bad.
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
Hi, I'm Bill Gates, and I'm going to give you ONE MILLION DOLLARS if you send your credit card info to me.
See the problem?
I hear there's rumors on the Slashdots
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.
I didn't even have to RTFA to figure that out (yay me, right?). AFAIK, most people who could (would) dediate a serious amount of bandwidth to downloading content quickly would be likely to dedicate a serious slice to uploading, therefore enriching the available bandwith for everyone.
The Spoon
Updated 6/28/2011
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
Selfish selection of peers can lead to cliques of clients on the same network. Tit-for-tat has been proven as a highly effective strategy in games resembling the iterated prisoner's dilemna, but it can be defeated when a large enough group of of agents cooperate. This link has more.
RTFA. They didn't create a client that is "selfish" by trying to avoid uploading. They created a client that is selfish by first allocating more upload capacity to other clients that will send them more when they upload more, and only allocate the remaining upload capacity to clients where benefits from increased uploading are not certain. If you read their paper, they regularly bring up the effects of this on the entire network and they don't know if it's good, bad, or has any effect on the network (and not for a lack of trying)
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.
Some folks at ETH Zurich took it one step further, and wrote a client - BitThief - that doesn't upload and yet still can download as fast as a regular client. This is especially valuable in countries that define copyright violation to be the uploading of content.
Did you actually read the paper?
They are looking at improving download time for that user and the overall swarm by the use of their algorithm.
The idea being that you share all the upload space you have - but you do it in such a way as to maximise what you can download in the same amount of time.
This in turn means that when you have finished downloading the file the number of copies within the swarm will have increased - also those that shared with you more will have been able to download quicker themselves.
A client like this will penalise selfish or greedy uploaders far more than the normal client as it rewards those that give back.
Give a leach a block and he will have downloaded that block, teach a leach to seed and he shall have blocks for the rest of his life.
$_="Slashdotter";$syn="OTT";s;..;;;sub _{print shift||$_};s!ash!Perl !;s=$syn=ack=i;tr+LLEd+BLAH+;_"Just Another ";_
Actually this client would likely be favoured by the private tracker sites.
The private tracker already gives you plenty of incentive to make sure your ratio is >1 - even asside from basic morals.
The design of this client means those with higher speed uploads available will complete sooner, and thus you will end up with more high speed seeders.
Seeders who since they are members of private trackers are probably going to stick around until ratio >1
True I admit on piblic trackers something like this may not be as helpful or beneficial, but you can't have everything.
$_="Slashdotter";$syn="OTT";s;..;;;sub _{print shift||$_};s!ash!Perl !;s=$syn=ack=i;tr+LLEd+BLAH+;_"Just Another ";_
The anti-leech technology of the bittorrent protocol remains effective. Those ranting about this just haven't bothered to read... This client (despite the unfortunate name) is just smarter about how to use upload bandwidth, in an async world.
In fact, I would say this is an IMPROVEMENT in some ways over bittorrent's default behavior, as it will dedicate more of your outgoing bandwidth to higher-speed peers. They, presumably, can then serve up more data to others than a low-speed peer reasonably could.
Instead of being the end of bittorrent, this could really improve the health of the P2P network, increasing speeds and decreasing download times for everyone (not only those using this program).
Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
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
And when there's 12 seeders and no one besides you downloading...then what? Its rare, but that does happen.
Clicky to pirate bay
"I may be full of crap about this game, and I may be wrong, and that's fine." -Jack Thompson
Awesome! If everyone used that client, the MPAA/RIAA wouldn't have a leg to stand on.
Responsible researchers would actually RTFA...
Something tells me that this guy is looking for karma instead of doing good research.
"But this one goes to 11!"
Not rare, it's extremely common on private sites with specialized material. I've had trouble raising my ratio above 0.85 on DIME, in spite of having 250KB/s upload. It's annoying, but there's not much you can do about it.
LOAD "SIG",8,1
I'd love to give it a spin, but at 2kbs download for the client installer I'll be here all night. Maybe I can find a torrent for it for a faster download...oh the irony.
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.
Ditto that. I only torrent stuff that is completely unavailable commercially: so-called "out-of-print" material. (What the hell: it's a bunch of zeros and ones, just like all the other zeros and ones. How can it be out of print?) If you're trying to get soundtracks from obscure 1980's movies or ripped '50's jazz LP's, it's pretty frequent that the number of seeders vastly outnumbers the number of people who are still trying to find it.
Nostalgia's not what it used to be.
Indeed, it's true that BitTyrant will not always improve performance, even when directly compared to other clients on the same torrent at the same time! There are several reasons for this:
- Data availability: Suppose seeders are sending out data at 20 k/sec, and a complete copy does not yet exist in the swarm. Then, even if you start downloading quickly, eventually you will catch up to the data production point and download at no faster than 20 k/sec.
- Luck of the draw: sometimes, you'll get a lucky peer (or seed) from the tracker. Because most trackers only return a subset of the peers available, BitTyrant can't make its peering selections with global information. If one client happens to get several high capacity peers that BitTyrant never sees, relative performance may be worse.
- Seed dominated performance: if there are a lot of seeds for a file, their altruistic contribution might dominate performance. BitTyrant is designed to improve download performance when tit-for-tat controls download speeds. This is typically the case when there are few seeds for a file, but many leechers.
These provide just a glimpse at the many factors that drive BitTorrent download performance. For a more thorough treatment, check out the paper:http://www.cs.washington.edu/homes/piatek/papers/
This is why we conducted an evaluation on not just one torrent, but more than 100, drawn from popular aggregation sites like mininova and piratebay. Aggregate statistics are necessary to have an idea of performance in general, as opposed to special cases that can arise.
And now what? You didn't do something really, really foolish, like believing the Slashdot headline before RTFAing, did you? Silly hobbit.
If you were blocking sigs, you wouldn't have to read this.
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.
Emule has a system like this, and it basically slows everything down in the name of fair sharing. It takes absolutely forever to start downloads, since you're stuck in a vicious "chicken and egg" circle of "I can't upload anything to download" and "I can't download anything to upload".
As it stands, Bittorrent is how the Edonkey protocol used to be before ratio systems were added to the clients; Fast. After Edonkey started adding anti-leech systems to the clients, the speed went into the toilet, and the queues started skyrocketing.
I suspect that if this catches on, you can kiss 300kb's downloads goodbye.
In Soviet Russia, Trojan exploits YOU!
> 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.
This technique can easily be circumvented. A leech client can co-operate with another leech client. As soon as he receives your rare packet, he can tell the other client to pretend to have it, too (without actually sending it).
It makes sense when he does the same for the other client, so both can leech from the swarm.
The only difficulty is how the leech clients find each other, while staying undetected by the rest. This, while solvable too, is not a problem initially, because the other clients must catch up first.
Regards,
Marc
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 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.
Rather than worrying about leeches, why not concentrate on speed?
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.
If it weren't for P2P, ISPs wouldn't have half the customers they do now. And you wouldn't have half the job you do now.
Give me Classic Slashdot or give me death!
alot of complaints about the horrible upload/download issues with bit torrent resulting in downloads that take hours when they could take minutes through a ftp. I think these people are missing the key point behind bit torrent - it's not to make your download faster but to make it easier for the distributor to ... well... distribute. To that end, this tech seems fairly useful. The more people who have the file the more people can distribute the file in the end. If these people are pure leechers then they'll be caught and IP banned by any respectable torrent site. And the cycle continues.
If you were offended by anything I said... No, I'm not sorry. Please lighten up.
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.
"why is BT so slow?"
It may be that your ISP is attempting to detect the BT streams, and if it decides you're "BTing" throttles you... It would seem Rogers here in Canada is doing just that.... I can typically get capped downloads via http or ftp, but minutes after launching a BT session I'm throttled to around 1/3rd my subscribed downstream rate. (Bastards!) I can't say when they started doing this -- A couple years ago I got torrents at full speed.
Be who you are and say what you feel, because those who mind don't matter and those who matter don't mind. - Dr. Seuss
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.