Thought of a way to have the client d/c people without abuse

Archived discussion about features (predating the use of Bugzilla as a bug and feature tracker)

Moderator: Moderators

Locked
Nazo
Posts: 68
Joined: 2003-04-03 14:35

Thought of a way to have the client d/c people without abuse

Post by Nazo » 2003-06-02 17:57

Ok, the subject line is a little too small for me to say it well. I don't mean without ANY abuse mind you. Here's my idea though. Basically the client could keep an average of your uploads' speeds over time. After a certain number of uploads have occured (say 20 just to throw out a number that seems reasonable) it could start looking at uploads that fall below a certain percentage of that average. I'm thinking that perhaps 10% would be a reasonably low enough number while still being high enough to get the really slow people who take up slots forever. It would give them a certain amount of time to get their speed back up (3 minutes?) and then disconnect them if they still haven't gone over the lower limit. This is, of course, abusable by simply changing the stored average (maybe encrypt it?) or modifying the client, but not abusable by the "average" user who doesn't know how to do such things and doesn't realize that they can get a modified client.

Of course, it should be possible to disable such a thing if it just doesn't work right on your connection or something. Also, maybe allowing the user to adjust the percentage value within a certain range such as 1-10% might be worthwhile as well.

Anyway, maybe it's too easily abused, but I think the idea is worth a consideration.

Charalambos
Posts: 84
Joined: 2003-05-02 06:30

Re: Thought of a way to have the client d/c people without a

Post by Charalambos » 2003-06-03 01:14

I guess i didn't actually get your idea and how it should be preventing abuse.

As i understood, it would rather support abuse, as this is a function more than can easily be abused.
Nazo wrote:This is, of course, abusable by simply changing the stored average (maybe encrypt it?) or modifying the client, but not abusable by the "average" user who doesn't know how to do such things and doesn't realize that they can get a modified client.
The average people are not the problem, as they are mostly honest and are sharing as they should.

But the problem are those share fakers, and those are surely aware of the modified clients and how to abuse them and how to make fake shares and so on.

Maybe i got something wrong, but your suggestions would only put the users with slower connections at a disadvantage, and would not have any effect against abuse.

Or wasn't that your thought?
There is no pleasure in having nothing to do; the fun is in having lots to do and not doing it.
-Mary Wilson Little

Nazo
Posts: 68
Joined: 2003-04-03 14:35

Post by Nazo » 2003-06-03 14:46

You don't seem to have understood what I was talking about very well. In fact, did you properly read it? That quote was obviously misunderstood. When I said it would store the average, I didn't mean it would keep up with which people are honest or something, I meant it would keep up with the average of your upload speeds. So, if, for example, you have 50 uploads of 50KB/s and 25 uploads of 25KB/s, then the average that would be stored would be 41.67KB if I did my math right. As the number of total uploads increases, the average would smooth out more to accomodate the highs and the lows.

Also, you seem to misunderstand what I mean by such a thing being abused. When I refer to abuse, I don't mean "easy to modify the code to do things that cheat the intended purpose of DC," I mean "the average (aka not super-intelligent and probably not knowledgable of coding even) cheating user wouldn't be able to set their client to take advantage of this feature in a manner that defeats the purpose of DC." In other words, they couldn't set higher than whatever the maximum number was decided to be, such as maybe 10%. It could have a bar you drag, up and down arrows you click, or even a box you type in, it's pretty easy to make the client refuse to set higher than whatever the maximum number is decided to be. Of course, there will be people who modify the code to make it higher or even set it to 100%, but that's not really that different from the people who have ALREADY modified the current client to do similar (or even worse) things. Sure, it makes it slightly easier for these people to do this since they'd only have to modify that number if that's all they wanted their modified client to do, but even if this idea weren't implemented, these kinds of people have already done this sort of thing to the currently existing client, so it doesn't really do any good to look at that when you consider abuse. So, to summarize, I mean that a feature such as an upload speed limiter would be easily abused, but something like the slot number limiter is not something that I would call easily abused.

Nazo
Posts: 68
Joined: 2003-04-03 14:35

Post by Nazo » 2003-06-03 14:54

Oh yeah, and about disadvantaging the users with slower connections, do you think it's fair to put the users with faster connections at a disadvantage? Anyway, do the math. I don't know about you, but about the highest TYPICAL downloads I've gotten (aka all but about 6 or so in the entire time I've used DC) are around 20KB/s. 10% of 20KB/s is 2KB/s. A 28.8Kb/s modem user can download at a total of 3.6KB/s. Basically it woudl just mean that unless you have a super fast connection, even modem users still wouldn't be booted. Only the people that go INCREDIBLY slowly. This isn't usually even the fault of that user's connection. Usually more a matter of how many computers they have to go through to get to that one person or how many are getting from that person (in which case, they need to decrease their slots, but at least this would help prevent their uploads from always going under 500B/s like the usual "T3" user seems to upload at on DC... They would still need to decrease slots to give decent speeds, but it would be a start.)

Oh, and I can download a total of 150KB/s, so don't say that my seeing 20KB/s as the typical highest download is because I'm on a slow connection. It may not be Internet 2 or anything, but it's definitely higher than 20KB/s... I also don't usually see more than 3 or 4 downloads running at the most, so it's not that I have too many downloads running. And uploads affect my downloads pretty minimally.

Splicer
Posts: 65
Joined: 2003-02-20 02:05

Post by Splicer » 2003-06-03 17:30

Why bother hurting people with connection not as good as yours?

You've got to realize that this is multi-national, you're going to have problems from time to time.

I and others have already suggested a implementation of a feature that would essentially do the same thing but instead of uploads it cancels downloads that are not going fast enough.

This is a much better way to go about it then canceling uploads.
"Tomorrow sees undone, what happens not today. Indecision brings delays. Days lost lamenting lost days"

"I’m getting some kind of sick pleasure out of watching her squirm!?!........must be a perk!"

Nazo
Posts: 68
Joined: 2003-04-03 14:35

Post by Nazo » 2003-06-03 18:35

Because NO connection should be downloading less than 2KB/s! Not even modems... If they are, they are spreading their downloads too thin and need to stop at once and concentrate on just one at a time or else they'll never finish. Perhaps you people just aren't getting the idea of the numbers involved here. The cutoff point would ONLY be a small percentage, perhaps even less than 10, that was merely a suggestion. Usually I almost always have 3 uploads of roughly 15KB/s, 10KB/s, and 5KB/s. Assuming it was exactly those numbers all the time, then 10KB/s would be the average, and if the cutoff point were still 10%, you'd have to be downloading from me at under 100B/s to get cut off automatically. Do you see the point? If anyone is downloading less than 10% of the average upload, they are downloading FAR more slowly than a greater majority of people who get from you. And you don't seem to understand that part of the reason it would require a large number of averages before the feature activated would be to handle the highs and lows. In other words, since someone is almost always getting from me at modem speeds at the same time as two others are getting at light broadband speeds (hey, I'm only on DSL) the low would be considered as part of the average AS WELL AS the high. So unless I all of a sudden had only one slot in use and people were ONLY getting my full bandwidth of 25KB/s (which, btw, 10% of is still only 2.5, half what a good 56K modem should do) then the modem users are going to help to set the average in the first place. And, like I said, almost all my downloads that go above 5KB/s don't go faster than 20KB/s, so that would mean that, in practice, the majority of people I've been downloading from would have no higher than 20KB/s as their average. 2.0KB/s.

The purpose is not to "punish" anyone with any sort of connection, but, merely to stop people from hogging a slot if they are downloading at considerably lower speeds than the majority of people who get from you. This would allow people who can download faster to get in, finish files more quickly, and then finish sooner, freeing the slot more quickly.

Nazo
Posts: 68
Joined: 2003-04-03 14:35

Post by Nazo » 2003-06-03 18:45

Oh yeah, and I'm not completely adverse to the concept of cutting off downloads at a certain speed, however, I've quite often had to download rare stuff at pretty crappy speeds, and one of the cool things about DC is the chance to get those rare things when elsewhere it's well nigh impossible. Usually I end up downloading those things from a "T3" or "T1" user at less than 5KB/s. The system I was suggesting would cut off on what must be the multitudes downloading from them to slow down such an incredible connection that much. I understand that it would mean I can't download from them under 5KB/s, but it would also mean that I wouldn't download from them at 5KB/s because they would have a lot less downloads spreading their bandwidth that thin due to the system. This is, of course, assuming they aren't lying about their speeds. I still don't understand why one would say they have a faster connection than they do though. If you are going to lie, you say you have a 56K modem and people are less inclined to want to download from you, not that you have a T3 so people are MORE inclined to download from you... Of course, this system wouldn't care if they lie or not, it would get the numbers by seeing how they actually upload, so if they are lying to the point where they have a modem, then the average would likely not be higher than 3.5KB/s or so at the absolute max (assuming they had one slot sending all their bandwidth with every connection, which I'm not sure what it is for a 56K modem, but it seems to work out to around 3.5KB/s.) 10% of 3.5KB/s is only 35B/s.

GargoyleMT
DC++ Contributor
Posts: 3212
Joined: 2003-01-07 21:46
Location: .pa.us

Post by GargoyleMT » 2003-06-04 21:13

Nazo wrote:Because NO connection should be downloading less than 2KB/s! Not even modems... If they are, they are spreading their downloads too thin and need to stop at once and concentrate on just one at a time or else they'll never finish.
I'm sorry that you believe that it's not happening, or that if it is happening, the users have control over it.

Also, how do you propose to deal with the situation where the users's upload is used, consistently, for a long time, such as sending out several large emails, uploading a new website design, or using another P2P application? A simple average will not be sufficient for this (probably decently frequent) case.

Those are just criticisms of the method, not of the basic "feature" So the question: why do you want to automatically disconnect users at all? Why not automatically open up more slots when slow users download from you (i.e. use the auto-open new slot if uploads are below xxkb feature)?

Nazo
Posts: 68
Joined: 2003-04-03 14:35

Post by Nazo » 2003-06-05 19:01

Well, I don't really know about everyone else, but I don't really see my downloads all running slowly, they just get spread too thinly (which is why I elect to have the absolute minimum number of slots.) Anyway, the cool thing about the averaging system is that it would be running over a long period of time smoothing things out a pretty good bit and making it require pretty large differences to very noticably effect the average. It would take a while before it properly smoothed out, but it would eventually. That's why I said it would not activate until they had reached some minimal number that was decided to be enough.

Anyway, I don't know. I had somehow or other forgotten the thing that opens new slots. The two methods are rather different and one would compensate for problems that get by the other in each case. I wonder if it would just be best to have sort of a combination of both (even something like choosing not to kick people downloading below the bare minimum unless there are others trying to get in.) The problem with that option to open new slots is that it relies on numbers to not change too much, but they do a bit too often for my liking. You kind of have to set the number relatively low or else you'll end up spreading your bandwidth thin entirely by your own fault. Anyway, I was just throwing out ideas. I like the upload average thing though, it seems that it can be used for other ideas like what I suggested in another thread that you may or may not have seen where it could be used to use an upload limiter without abuse. (Except for a modified client, but they already have that, so nothing special there.) Any hope of making DC++ as good as it possibly can be is worth a try.

Oh yeah, and I know that people are choosing to open WAY too many downloads, spreading their bandwidth so thin that it can actually drop below a 2KB/s line, but isn't that the very kind of thing that's causing us who don't or even can't spread it that thinly? (Ok, I'm only on DSL, but with the speeds I see on DC, it's rather hard to open enough downloads to spread my bandwidth thin, I'm just lucky to come even close to it through > 20 open downloads, and that takes work.) Those people are using up more slots, but not downloading faster like the multisource download argument, so people overall get things more slowly due to that.

GargoyleMT
DC++ Contributor
Posts: 3212
Joined: 2003-01-07 21:46
Location: .pa.us

Post by GargoyleMT » 2003-06-05 19:42

Nazo wrote:The problem with that option to open new slots is that it relies on numbers to not change too much, but they do a bit too often for my liking. You kind of have to set the number relatively low or else you'll end up spreading your bandwidth thin entirely by your own fault.
:) It's not what I'd like either, that's why I don't use it. But it's on my list of things to improve.
Nazo wrote:Oh yeah, and I know that people are choosing to open WAY too many downloads, spreading their bandwidth so thin that it can actually drop below a 2KB/s line, but isn't that the very kind of thing that's causing us who don't or even can't spread it that thinly?
That's not the only time people's downloads go very slowly. People do use more than just DC, and I think your proposals won't work well in those cases.

I still haven't seen why it's better to disconnect slow users automatically than to automatically grant slots if your total upload speed is too low. But maybe I avoid disconnecting people, so doing so automatically has no appeal to me.

Nazo
Posts: 68
Joined: 2003-04-03 14:35

Post by Nazo » 2003-06-05 20:06

I generally avoid disconnecting people with only the exception of if they are downloading a file I'm about to delete or move or something (in which case I warn them first with plenty of time via PM) or more recently, I got sick of people trying to steal slots somehow and want everyone to just get back in via non-cheating methods while I watch to try to catch the person who specifically did it (and hopefully see how so I know what to look out for.) The point is that if you have those people who take up a slot downloading at really crappy speeds (usually the really bad ones I'm talking about are below 500B/s even...) then they are holding up a slot that someone else could use to get things considerably faster. The open new slots thing might not trigger a new slot due to the fact that you might have other uploads that are high enough to be above a reasonable limit on that setting. It does occur to me that any other users may be getting pretty close to your maximum upload speed though. Perhaps if they are, then it shouldn't disconnect anyone, but would look to see how well your bandwidth is in use.

Anyway, as for the whole thing about if they are using Kazaa/etc, the fact that it uses a large number of uploads to get the average (now that I think of it, 20 might be too few for the beginning number) it will smooth out the average by the very nature of averaging. Using kazaa and other such things would minimally affect the average after there have been enough uploads unless they are doing that all the time. And, if they are, you might just as well go ahead and consider their total upload bandwidth to be whatever is left anyway (which would lower the amount that it would choose to be kicking people off for btw, so it doesn't benefit them to use this to try to trick the average system.) After all, if they have it running all the time nearly, then you can't really assume you can get a whole large file from that person at whatever speed they can send when kazaa is closed since most likely they will have it open again soon enough.

GargoyleMT
DC++ Contributor
Posts: 3212
Joined: 2003-01-07 21:46
Location: .pa.us

Post by GargoyleMT » 2003-06-05 20:41

Nazo wrote:The point is that if you have those people who take up a slot downloading at really crappy speeds (usually the really bad ones I'm talking about are below 500B/s even...) then they are holding up a slot that someone else could use to get things considerably faster. The open new slots thing might not trigger a new slot due to the fact that you might have other uploads that are high enough to be above a reasonable limit on that setting.
I fail to see how this is a problem. If someone's download is going really slow, and another transfer is going faster in response, why bother disconnecting the slow person? Do you want to have some sort of maximum upload speed per slot?
Nazo wrote:Using kazaa and other such things would minimally affect the average after there have been enough uploads unless they are doing that all the time.
You're making some pretty huge assumptions for very little gain. For instance, what if someone's downloading the latest debian updates on another computer on their LAN, or getting any large file with getright, which will segment popular downloads and possibly fill their whole download bandwidth? All of these things will negatively affect any averaging scheme in DC++ both short and long term.

Low speeds might not, and probably does not, bother some people. They will get the file eventually, if they're not in a hurry, they don't mind if whatever large file they're getting on DC chugs along at 2 kbps or 500 bps.

Nazo
Posts: 68
Joined: 2003-04-03 14:35

Post by Nazo » 2003-06-05 22:01

GargoyleMT wrote:I fail to see how this is a problem. If someone's download is going really slow, and another transfer is going faster in response, why bother disconnecting the slow person? Do you want to have some sort of maximum upload speed per slot?
Ah, but that's why I said that maybe if there was another download going at full speed there might not really be any point in disconnecting that person after all. The point is to maximize your total bandwidth. That's especially necessary with me since all I have is a 25KB/s upload, so I try to give people as much as I can (hence the reason I have the bare minimum number of slots for the two hubs I'm in together.) Even so, most of my uploads tend to be under 10KB/s for people more recently. Not terribly fast exactly...
GargoyleMT wrote:
Nazo wrote:Using kazaa and other such things would minimally affect the average after there have been enough uploads unless they are doing that all the time.
You're making some pretty huge assumptions for very little gain. For instance, what if someone's downloading the latest debian updates on another computer on their LAN, or getting any large file with getright, which will segment popular downloads and possibly fill their whole download bandwidth? All of these things will negatively affect any averaging scheme in DC++ both short and long term.
Really just the short term. As the number of total uploads adds up, the uploads that were affected while someone was downloading Debian who apparently doesn't download very often besides then. I've had personal experience in the way averaging works at smoothing out large peaks and valleys in high school and college with my own grades. It would require a large number of such occurances to actually adversely affect the average like that. And, if you have such a huge number of those occurances, then that means that the person's bandwidth AS FAR AS PEOPLE ON DC ARE CONCERNED is closer to what DC++ woudl find as the average. I know that sounds a little odd, and I wish I could think of the words to explain it a little better, but, it is true that basically when you've reached a long enough period of time if people really are doing such things so much that it affects the average so strongly, then overall, it's just like you have a slower connection to the majority of the DC users who get from you. Perhaps I could make up some numbers to demonstrate this, but it's kind of tedius and I'm lazy, so that's last resort since it would have to be a LOT of those numbers and I'd have to make them all up since I don't have statistics that would help really. d-:

There's also one thing you appear to be forgetting. If your bandwidth is hurt more by those things, it LOWERS the average. Since the percentage is based on that average, the lower limit becomes lower, cutting off people less and at even slower speeds yet. For example, if you were uploading 20KB/s on average before, then someone on your lan throws the average off by getting those Debian discs lowering the DC++ upload average to, say 5KB/s, then the cutoff point goes from .10*20=2KB/s to .10*5=500B/s. Of course, what I'm trying to say is that after you've had a large enough number of uploads over a large enough period of time, such a thing as that really wouldn't affect your average THAT much. I can't really make up a large number of realistic numbers, but I can give an example.

Say you have 500 uploads at an average of 20KB/s each. You feel an irresistable urge to run Kazaa though you should know better (or be evil and disable shares d-:) and 20 uploads go at only, say 5KB/s on average. (500*20)+(20*5)/(500+20)=(10000)+(100)/(520)=10100/520=19.423076923076923076923076923077. That chances the minimum download from 2KB/s to 1.94KB/s, a 60B/s difference. Pretty minimally lower than the original 20KB/s average, ne? Also, remember that because those uploads go slower, it takes them longer to finish so there will be less complete uploads occuring in the same amount of time than before.
GargoyleMT wrote:Low speeds might not, and probably does not, bother some people. They will get the file eventually, if they're not in a hurry, they don't mind if whatever large file they're getting on DC chugs along at 2 kbps or 500 bps.
Precicely who did you ask to vote on this? Quite frankly, I find it very hard to believe that the majority of people actually feel that way. Personally, I DO mind if my downloads go below 5KB/s and desperately search for more sources when I can. I don't like having to wait even actually over a week for some of the things I've had to get via DC++. I only tolerate such slow downloads due to the rarness of most of the things I'm getting through DC++ (which is the reason I'm using DC++ as it seems to have the most amazing likelihood to find those rare things that are well nigh impossible elsewhere.)

Gratch06
Posts: 141
Joined: 2003-05-25 01:48
Location: USA

Post by Gratch06 » 2003-06-05 23:43

GargoyleMT wrote:Low speeds might not, and probably does not, bother some people. They will get the file eventually, if they're not in a hurry, they don't mind if whatever large file they're getting on DC chugs along at 2 kbps or 500 bps.
*nods in agreement*

- Gratch

Nazo
Posts: 68
Joined: 2003-04-03 14:35

Post by Nazo » 2003-06-06 01:05

Here's more numbers for you. A 170MB file (roughly around what you'd find a DivX episode these days, many are 200+ now though) will require about a whole day. Of course, that doesn't take in account extra things like variance in speed (which almost always is it going down rather than up) and people disconnecting or even yourself disconnecting. Or, maybe you just can't always have DC++ running 24/7. Anyway, that's for a 20 minute ep. Suppose you are looking for an OVA or something? Those can be as much as an hour in some cases. Suppose you were looking for something else even? A game perhaps? I've been getting some dreamcast and even harder to find stuff via DC lately. And don't talk about it being illegal. They aren't making them any more, so no one is really making a profit but the people who sell the rarer games for many times what they bought them for. The point of copyrights/etc is to protect the author, not people who hord things, but, anyway, that's another issue, I'm just saying you can't use that argument to say no one should download such large things. Anyway, some of the things I'm getting that are on cd are even more rare such as PC-Engine (Turbo 16/Duo) games and stuff that wasn't even released in this country. Just imagine, 600MB at roughly 2KB/s could require at least three and a half days. That's if you get lucky and find one of those rare sources that stay on more than a few minutes at a time, which apparently I'm not so good at. Anyway, really I wouldn't mind 2KB/s or lower quite so badly if I could just leave it running for those necessary days, but I've yet to see one of those types of downloads finish in less than a week at best. I still have a rare movie that I added about a month ago and only have 15MB or so at the rate it's been downloading when it can get from that user. Sorry, but, downloads that slow just are not acceptable for quite a number of us if not the greater majority.

jbyrd
Posts: 255
Joined: 2003-05-10 09:26
Location: no-la-usa-earth
Contact:

Post by jbyrd » 2003-06-06 12:50

Assuming it was exactly those numbers all the time, then 10KB/s would be the average, and if the cutoff point were still 10%, you'd have to be downloading from me at under 100B/s to get cut off automatically.
AND
10% of 3.5KB/s is only 35B/s.
You're kidding yourself. These are 1% figures.
There's also one thing you appear to be forgetting. If your bandwidth is hurt more by those things, it LOWERS the average. Since the percentage is based on that average, the lower limit becomes lower, cutting off people less and at even slower speeds yet. For example, if you were uploading 20KB/s on average before, then someone on your lan throws the average off by getting those Debian discs lowering the DC++ upload average to, say 5KB/s, then the cutoff point goes from .10*20=2KB/s to .10*5=500B/s.
Yeah, but you're forgetting something here. Your average isn't going to get down to 5kb/s because your cut off point is 2kb/s. You are going to need a ton of people between 2 and 5kb/s to average out with the higher speeds.

Also, I would like to say that I LOVE when there are slow people downloading from me. It takes up less of my bandwidth and I have no problem with that. You know, when people are gobbling up bandwidth on my uploads, it kills downloads on some connections. Therefore this feature has no use for those connections. Hell, DSL is one of them. NEWay.

What happens when you get on the net, and are downloading some file or update. Your bandwidth falls, and everyone your are uploading to gets very slow download speeds and they are ALL disconnected.

It is very hard to take an average of upload speeds when you disconnect the slow ones. The average RISES constantly. The lows do not even out the highs because you disconnect the lows.

GargoyleMT
DC++ Contributor
Posts: 3212
Joined: 2003-01-07 21:46
Location: .pa.us

Post by GargoyleMT » 2003-06-08 22:13

Nazo wrote:
GargoyleMT wrote:Low speeds might not, and probably does not, bother some people. They will get the file eventually, if they're not in a hurry, they don't mind if whatever large file they're getting on DC chugs along at 2 kbps or 500 bps.
Precicely who did you ask to vote on this? Quite frankly, I find it very hard to believe that the majority of people actually feel that way. Personally, I DO mind if my downloads go below 5KB/s and desperately search for more sources when I can. I don't like having to wait even actually over a week for some of the things I've had to get via DC++. I only tolerate such slow downloads due to the rarness of most of the things I'm getting through DC++ (which is the reason I'm using DC++ as it seems to have the most amazing likelihood to find those rare things that are well nigh impossible elsewhere.)
Then I suggest those people who are impatient for their downloads to complete lobby/code for an option to drop sources if the speed drops below xx kb per <time> <time unit>. Otherwise, the suggestion of fixing the auto-open slot average would solve both problems. I don't see any need to forciby disconnect users. They will end up retrying anyway, and if your slots are not full, it will actually lead to more traffic for you - considering how rollback + write buffer will add up over several disconnects. ;-)

Locked