![]() Registered Member ![]()
|
How cool would this be:
Here's an idea I've had for BitTorrent QoS. The idea is to classify other users into one of three categories and allocate upstream bandwidth according to their classification. It would be great if this were implemented as a plugin. I doubt it would be viable to run at 100 mbps speeds due to CPU limitations but at the speeds my ISP serves, it would be easily viable. Bandwidth throttling should happen per chunk to keep CPU requirements down. There's no need for further granularity than that. Preferred - These are people doing it right. If someone has given me a lot of bandwidth, I want to hit them as hard as I can with a high amount of upstream bandwidth. For me, anyone I've shared to at 4:1 or less would be a preferred peer. I'd love to be able to give this group 50 Kbps or maybe even unthrottled. Standard - Most users would fall into this category. Anyone who I've shared at less than 50:1 would be a normal user. If I've shared 50 MB, I'd like 1 MB in return. I'd love to be able to throttle this group down to 10 Kbps, or so. Cockroaches - These are the guys who want to soak up a 10 GB torrent and give 0 bytes in return. Anyone who hasn't shared at the minimum standard limit should fall into this category. These guys are read-only. If they want more bytes from me, they should send a few bytes my way. There would need be a basic bandwidth credit, per peer (IP address). I would think that for me, 200 MB would be reasonable. You can take 200 MB from me at the standard throttle rate without a byte in return but, after that, I'd like to see something for my trouble. Of course, it should all be adjustable within reason. Settings: Preferred ratio: xx:1 (default 4) Preferred upload rate: xxx (0 is no limit) Standard ratio: xx:1 (default 50) Standard upload rate: xxx (0 is no limit) Bandwidth credit: xxxx (default is 200 MB) Wouldn't that be neat? It would be like a network within a network. We could shut down the cockroaches and create a premium network inside bit torrent with the opportunity to include new premium users as they come online. Is enough information available to the plug-ins to implenet this now, as Ktorrent stands, or would it require core changes to implement this behavior at the plug-in level? I'm guessing significant core changes would be required. I will write it but I'm not a KDE developer yet so I'd just be able to do the logic pieces of the plug-in. |
![]() Moderator ![]()
|
This is not something you can put in a plugin.
Your idea kind of resembles what BitTyrant does, it gives more upload bandwith to good sharers. (BitTyrant website : http://bittyrant.cs.washington.edu/) Currently ktorrent has a scoring system which is used for unchoking peers, we don't have any bandwith caps on individual peers. Good sharers will get good scores, the best scores and a random one will be unchoked each time the choker runs. I don't think using a class based system is a good idea, we have a scoring algorithm, so it would make more sense to use the scores as a basis to divide up the bandwith. |
![]() Registered Member ![]()
|
|
![]() Registered Member ![]()
|
OK,
I tried BitTyrant and it was somewhat better but not that great. Then, about a week ago, both BitTyrant and Ktorrent started working perfectly again. I think my ISP had something throttled around Christmas. About BitTyrant: I like the idea of giving to those who share but I don't like the way they implemented it. It gives the minimum amount of bandwidth to other peers that will keep them sending data then it spreads the rest randomly among the pure leachers. To that end, it penalizes people who share. I'd like to give more bandwidth to people than they give me, not the bare minimum. Also, I'd like to give bandwidth to people who are at 0% and need to get some data to get their download rolling. It's only the people who have taken huge gobs of bandwidth with nothing in return I want to shun. |
Registered users: bartoloni, Bing [Bot], Google [Bot], Yahoo [Bot]