Perché il carico del relay varia

Tor gestisce la larghezza di banda sull'intera rete. Fa un lavoro ragionevole per la maggior parte dei relay. Ma gli obiettivi di Tor sono diversi da quelli di protocolli come BitTorrent. Tor vuole pagine web a bassa latenza, il che richiede connessioni veloci con spazio di manovra. BitTorrent vuole download di massa, che richiedono l'utilizzo di tutta la larghezza di banda.

Stiamo lavorando a un nuovo scanner di larghezza di banda, più facile da capire e da mantenere. Avrà una diagnostica per i relay che non vengono misurati e per i relay che hanno misurazioni basse.

Perché Tor ha bisogno di scanner di banda?

La maggior parte dei provider indica la velocità massima della propria connessione locale. But Tor has users all over the world, and our users connect to one or two Guard relays at random. Dobbiamo quindi sapere quanto ogni relay sia in grado di connettersi al mondo intero.

So even if all relay operators set their advertised bandwidth to their local connection speed, we would still need bandwidth authorities to balance the load between different parts of the Internet.

Qual è il carico normale di un relay?

È normale che la maggior parte dei relè sia caricata al 30%-80% della propria capacità. Questo è positivo per i client: un relay sovraccarico ha una latenza elevata. (We want enough relays to so that each relay is loaded at 10%. Then Tor would be almost as fast as the wider Internet).

A volte, un relay è lento perché il suo processore è lento o le sue connessioni sono limitate. Other times, it is the network that is slow: the relay has bad peering to most other tor relays, or is a long distance away.

Scoprire cosa limita un relay

Molte cose possono rallentare un relay. Ecco come individuarli.

Limiti del sistema

  • Controllare l'uso della RAM, della CPU e dei socket/descrittori di file sul relay

Tor registra alcuni di questi dati all'avvio. Altri possono essere visualizzati utilizzando top o strumenti simili.

Limiti dei fornitori

  • Controllare il peering Internet (larghezza di banda, latenza) dal provider del vostro relay ad altri relay. I relay che transitano via Comcast sono stati a volte lenti. I relay al di fuori del Nord America e dell'Europa occidentale sono solitamente più lenti.

Limiti della rete Tor

La larghezza di banda del relay può essere limitata dalla larghezza di banda osservata dal relay stesso o dalla larghezza di banda misurata dalle autorità di directory. Ecco come scoprire quale misura limita il vostro relay:

  • Controllare ogni voto per la propria relay su consensus-health (pagina grande) e controllare la mediana. Se il vostro relay non è contrassegnato come in esecuzione da alcune autorità di directory:
    • Ha un indirizzo IPv4 o IPv6 sbagliato?
    • Il suo indirizzo IPv4 o IPv6 è irraggiungibile da alcune reti?
    • Ci sono più di 2 relay sul suo indirizzo IPv4?

Altrimenti, verificare la larghezza di banda osservata e la velocità di banda (limite) del relay. Cercate il vostro relay su Metrics. Passare il mouse sulla voce larghezza di banda per visualizzare la larghezza di banda osservata e la velocità della larghezza di banda del relay.

Here is some more detail and some examples: Drop in consensus weight and Rampup speed of Exit relay.

Come risolvere il problema

Il più piccolo di questi dati limita la larghezza di banda assegnata al relay.

  • Se si tratta della velocità di banda, aumentare BandwidthRate/Burst o RelayBandwidthRate/Burst in torrc.
  • If it's the observed bandwidth, your relay won't ask for more bandwidth until it sees itself getting faster. È necessario capire perché è lento.
  • Se si tratta della larghezza di banda mediana misurata, il relay sembra lento per la maggior parte delle autorità che si occupano di larghezza di banda. È necessario capire perché la misura è lenta.

Eseguire le proprie misure di relay

If your relay thinks it is slow, or the bandwidth authorities think it is slow, you can test the bandwidth yourself:

  • Eseguire un test con tor per verificare la velocità di tor sulla rete

    Per questo, è necessario configurare un client tor per utilizzare il relay come ingresso. Se il relay ha solo il flag Guard, impostare EntryNodes con l'impronta digitale del relay in torrc. If your relay doesn't have Guard flag or it has Guard and Exit flags, you can't set your relay as an entry node (see https://gitlab.torproject.org/tpo/core/tor/-/issues/22204), but you can set it as your bridge, even if it is not a bridge. Per impostare il proprio relè come bridge, aggiungere al proprio torrc:

    Bridge <ip>:<port>
    UseBridge 1
    

    Quindi scaricare un file di grandi dimensioni utilizzando la propria SocksPort come proxy socks. Per questo, si può usare curl, ad esempio:

    curl https://target/path --proxy socks5h://<user>:<password>@127.0.0.1:<socks-port>
    

    Using different user/password guarantees different circuits. You can use $RANDOM.

    Questo vi darà un'idea della quantità di traffico che il vostro relay può sostenere.

    Alternatively, you can run relay_bw to test your relay using 2 hops circuits, in a similar way as sbws does.

  • Run a test using tor and chutney to find out how fast tor can get on your CPU. Continuate ad aumentare il volume di dati finché la larghezza di banda non smette di aumentare.