Opened 6 years ago

Last modified 3 years ago

#10307 new enhancement

Allow Tor relays to configure bandwidth limits around peak usage

Reported by: anon Owned by:
Priority: Low Milestone: Tor: unspecified
Component: Core Tor/Tor Version:
Severity: Normal Keywords: tor-relay bandwidth needs-design
Cc: Actual Points:
Parent ID: Points:
Reviewer: Sponsor:

Description

The bandwidth limits specific by a Tor config and available via control port are very limited and coarse.

It would be useful to support dynamic limits, additional consensus flags, and control port capabilities to support dynamic bandwidth limits that adjust to peak load patterns to maximize off peak use of idle bandwith while be able to efficiently handle changing router capacities at a finer than consensus level granularity.

Preliminary or stop-gap efforts have included control port scripting to alter HSdir, Dir, Exit policy, egress shaping, and other techniques to achieve poor or moderate control over bandwidth usage beyond config max rates.

Child Tickets

TicketTypeStatusOwnerSummary
#24510enhancementclosedMake AccountingStart begin at the same time each period

Change History (8)

comment:1 Changed 6 years ago by anon

DevilCode is still trying to learn login button, how does it work. As his trusted proxy, he notes: "this could be done on a schedule, so that the relay uses more bandwidth when scheduled during known idle times of day".

This is true; however, use of LEDBAT or weighted falling averages of observed non relay capacity could provide maximum utilization of idle bandwidth periods without any explicit configuration or fixed schedule required.

EDIT: other use case - backups, netflix, any other on-demand need for bandwidth could use the control port or config to explicitly request a throttle / reduction to lower limit until complete.

Last edited 6 years ago by anon (previous) (diff)

comment:2 Changed 6 years ago by mo

It is actually not required to put more flexible and more thus complicated rules inside Tor itself. You can reconfigure Tor via its control port, or rewrite the configuration and send Tor a reload signal.

This sounds like a perfect isolated separate project, for example using http://stem.torproject.org/. There's also a script on the wiki that does something like this (peak/off-peak).

comment:3 in reply to:  2 Changed 6 years ago by anon

Replying to mo:

It is actually not required to put more flexible and more thus complicated rules inside Tor itself. You can reconfigure Tor via its control port, or rewrite the configuration and send Tor a reload signal.

where it is different, is that this method is both not very agile, and also introduces undesired behavior in the network.

consider another option, which while also easy to trim bandwidth causes undesired behavior and failures: publish as exit, then when bandwidth is high or under contention, start filtering exit ports, or cutting long lived circuits, or ...

it would be better to use existing facilities, but it would also be better to make efficient use of idle capacity without adding side effects or unintended failures.

the mention of router flags, for example, could mean re-using the stable flag as an indicator that a node has varying bandwidth limits over the day, so don't send long lived circuits there. etc.

Last edited 6 years ago by anon (previous) (diff)

comment:4 Changed 6 years ago by mo

If you plan to (only) change RelayBandwidthRate/BandwithBurst that should not cause any undesired effects.

comment:5 Changed 6 years ago by nickm

Milestone: Tor: unspecified

comment:6 Changed 6 years ago by Noah

I personally would like to see AccountingMax and AccountingStart take into account daily quotas. Many ISPs in Australia set different quotas for offpeak time and on peak eg Peak Period: 8am - 2am Off-Peak: 2am - 8am.

I have 500GB off-peak that goes pretty much untouched every month, and I can't use it with the current tor setup without greatly underprovisioning so it doesn't effect my day time quota.

comment:7 in reply to:  6 Changed 6 years ago by Noah

Another example of where this could be useful is to sell Tor to organisations. A common complaint is that they don't want Tor to affect the quality of their connection during the day, but if they could run a tor node only outside of business hours they may be happy to set up a tor relay.

comment:8 Changed 3 years ago by nickm

Keywords: tor-relay needs-design added; relay removed
Priority: MediumLow
Severity: Normal

calling this low-priority because you can already do it with a control-port script, or a torrc that you reload.

Note: See TracTickets for help on using tickets.