Gnutella Forums

Gnutella Forums (https://www.gnutellaforums.com/)
-   New Feature Requests (https://www.gnutellaforums.com/new-feature-requests/)
-   -   Let a user max out my upload (https://www.gnutellaforums.com/new-feature-requests/16852-let-user-max-out-my-upload.html)

Unregistered November 2nd, 2002 06:24 PM

Let a user max out my upload
 
I want to be able to give all my upload bandwidth to one download if that user can take it instead of having bandwidth split in half if another user comes along and starts downloading. Setting upload bandwidth does not address this problem since if I limit the bandwidth to say 30k and I have one upload per person, one upload slot to start and two at max I always see a user who was getting 30k/sec drop down to 15k/sec once another user takes the second upload slot. What is the point of setting the upload limits if another user is allowed to start downloading from me when another user is maxing out my upload bandwidth to begin with? I could set the max upload slots to one but then I end up with some modem user who takes four hours to download one file and no other users can download from me. If someone is able to get 30k/sec I don't want someone else to come along and slow down the first person.

How about a way to prevent users from downloading from you if they can't maintian a certain speed? I'd love to be able to prevent users from downloading from me if they can't stay above say 10k/sec.

LeeWare November 3rd, 2002 11:17 AM

Bandwidth Management
 
You already have this capability.


Most people are using ADSL connections to host files. Upload speeds tend to be slower than download speeds for these types of services so managing upload bandwidth is an important issue to a FSP (File Service Provider)

Take a typical ADSL connection 768kbps-down/128Kbps up

First we will address the issue of hardware limits.

By default your communications media (ie dsl /network) connection will divide up that bandwidth based on the user load.

So, without using the throttling feature in limewire

(if 2x user are connected to a 128Kbps each user will receive apx 64Kbps throughput AND IF 4x user are connected to a 128kbps each user will received apx 32kbps throughput)

The functionality is built into the hardware and is not dependant on the application.

Next the throttling feature in limewire.

The throttling feature in Limewire lets a servent administrator
take a percentage of the bandwidth and allocated to the Limewire program.

So In addition to the hardware speed limitations you are now placing software limitations on your available upload bandwidth!

(if my connection speed is 128Kbps for uploads then use 50% or 64Kbps of that connection for my available upload slots.)

This does the following thing to your connections.

(of 128Kbps connection reserve 64kbps for non-limewire upload stream traffic. Squeeze all upload slots into 64kbps data-stream)

With this configuration your limewire uploads will perform in the following manner:

Upload_Slots/Throughput
=================
if upload slots is 1 then tp = 64kbps
if upload slots is 2 then tp = 32kbps
if upload slots is 3 then tp = 21.3Kbps (this is the default setting for upload slots.)

The more upload slots you make available the smaller the throughput to remote users.

My Recommendations:

1. Give each user 100% of the available upload bandwidth and let your hardware manage the resources.

or

2. If you are going to reserve upload bandwidth for non-limewire upload-streams then goto option/uploads and change all those values from the current settings to 1. This will only allow 1 person at a time to connect to you and that person will only be able to download 1 file at a time--everything else will be queued until that upload slot is free.



Regarding Download Times:

If you are using limewire to throttle a 128Kbps connection down to 64Kbps and the AVG file is is 5MB (5.000.000) x 8 for Datacom rating = 40.000.000bits then you can expect the following download times by users.

@ 64kbps or faster (10.4 minutes)
@ 56Kbps avg (11.9 minutes)
@ 33.6kbps avg (19.8 minutes)
@ 28.8kbps avg (23.1 minutes)

In my mind it's a simple equation either you want people to
A = Get the files fast as possible.
B = Limit the Number People Who can connect at one time.
C = Give as little bandwith as possible to limewire uploads as to reserve some of it for other uses.

You have the ability to set your configuration to support any two combination of the above options but not all three.

Building this funtionality into limewire is counter-productive.


hope this helps.

Viktor November 25th, 2002 08:50 AM

I think there is something wrong with the Upload Bandwith Limit in Limewire.

It divides the bandwidth into equal amounts of bandwidth, which means that if I set it to 40KB/s and have 4 people downloading.
no user can download more than 10KB/s even if the other three don't use their amount.
In practice it means that maybe only half of the 40KB/s will be used.

In WinMX the bandwidth is divided in a way so the 40KB/s always will be used. Why not so in Limewire?

Another problem is that uploads already started will not be affected by setting the upload bandwidth. It seems that each upload will remember what the Upload Bandwidth Limit was when the upload was started. That seems impractical to me.

Viktor

LeeWare November 25th, 2002 08:51 PM

Throttle on Throttle?
 
Using your example:

If you allocate 40KB * 8 = 320Kbps in Limewire AND 4 people connect with the ability to pull data at or above 80Kbps or more THEN LimeWire is working correctly when allocating 80Kbps per user.

Let's say that two users can pull data to 80 or above Kbps
80 * 2 = 160kbps 320 - 160 = 160Kbps left.

Another user connects at 20 Kbps but has the ability to pull data upload 80Kbps and finally our final user connects at 56kbps this is his maximum speed.

Now, there's enough bandwidth for the person connected at 20Kbps to use 60Kbps more data on his connection. But the user connected at 56kbps is doing so based on limitations of his connection. (You can only send data as fast as the other person is able to receive it.) -- This is not a limewire issue.


LimeWire would function correctly under these circumstances.

Regarding under-utilization (wasted-bandwith) if you throttle your connections to 80Kbps and 4 users connect at 56kbps.

56*4 = 224Kbps bandwidth use. 320Kbps - 224Kbps = 96Kbps wasted you are suggesting the WinMX uses this 96Kbps to send data to the users (psssst -you can only send data as fast as the other person can receive it.)


Again if you want everyone to receive a file as fast as it can be received - I would recommend the following LimeWire configuration.

1. Turn off Throttle - Give each user 100% of the bandwidth
2. Cut your upload slots to allow x number of uploads per user for example: if outbound connection speed = 128Kbps and Iwant each user to get a maximum speed of 128Kbps and a minimum speed of 64Kbps then uploads per persons should be set at 1 and never allow more than = 2 uploads.


This will give you what you want without any code modification.


Finally - The inability to change the bandwidth allocation on the fly. Why would you want to do this?

efield November 25th, 2002 11:28 PM

Quote:

Originally posted by Viktor
no user can download more than 10KB/s even if the other three don't use their amount. [...] uploads already started will not be affected by setting the upload bandwidth.
The issues you brought up are in Issuezilla, the LimeWire.org bug tracking system, in case you didn't know.

upload bandwidth distribution could be better
upload bandwidth throttling doesn't affect current uploads


All times are GMT -7. The time now is 01:06 PM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
SEO by vBSEO 3.6.0 ©2011, Crawlability, Inc.

Copyright © 2020 Gnutella Forums.
All Rights Reserved.