Чому змінюється навантаження на ретранслятор

Tor керує пропускною спроможністю у всій мережі. Для більшості вузлів він працює добре. Але цілі Tor відрізняються від таких протоколів, як BitTorrent. Tor потребує вебсторінок з малою затримкою, що вимагає швидкого з'єднання з запасом. BitTorrent виконує масивні завантаження, що вимагає використання всієї пропускної здатності.

Ми працюємо над новим сканером пропускної здатності, який легший для розуміння та обслуговування. У ньому буде діагностика ретрансляторів, які не вимірюються, та ретрансляторів з низьким рівнем вимірювань.

Чому Tor потрібні сканери пропускної здатності?

Більшість провайдерів повідомляють вам максимальну швидкість вашого локального з’єднання. Але Tor має користувачів по всьому світу, і наші користувачі підключаються до одного або двох вхідних ретрансляторів випадковим чином. Тому нам потрібно знати, наскільки добре кожен ретранслятор може з’єднатися з усім світом.

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.

Що таке нормальне навантаження ретранслятора?

Для більшості ретрансляторів нормальним є навантаження на 30-80% їхньої потужності. Це добре для клієнтів: перевантажений ретранслятор має високу затримку. (Ми хочемо мати достатньо ретрансляторів, щоб кожен було завантажено на 10%. Тоді Tor буде майже таким самим швидким, як і звичайний інтернет).

Іноді ретранслятор працює повільно, тому що в нього повільний процесор або з'єднання обмежено. В інших випадках справа в повільній роботі мережі: ретранслятор має поганий зв'язок з більшістю інших ретрансляторів, або знаходиться на великій відстані від них.

З'ясування причин обмеження ретранслятора

Багато речей можуть сповільнити вузол. Ось як їх відстежити.

Системні обмеження

  • Перевірте використання оперативної пам’яті, процесора та дескриптора порту / файлу на вашому ретрансляторі

Tor реєструє деякі з них під час запуску. Інші можна переглянути за допомогою різноманітних інструментів.

Обмеження провайдера

  • Перевірте Інтернет з'єднання (пропускну здатність, затримку) від провайдера вашого ретранслятора до інших ретрансляторів. Ретрансляція через Comcast іноді відбувається повільно. Ретранслятори за межами Північної Америки та Західної Європи зазвичай повільніші.

Обмеження мережі Tor

Пропускна здатність ретранслятора може бути обмежена власною спостережуваною пропускною здатністю або виміряною пропускною здатністю керівного сервера. Ось як дізнатися, що саме обмежує ваш ретранслятор:

  • Перевірте кожен із відгуків про ваш вузол на consensus-health (довга сторінка) і перевірте середню вимірювану пропускну здатність. Якщо ваш ретранслятор не відмічено як Працює деяким керівними серверами:
    • У нього неправильна адреса IPv4 або IPv6?
    • Його адреса IPv4 або IPv6 недоступна з деяких мереж?
    • Чи є понад 2 ретранслятори на його IPv4-адресі?

В іншому випадку перевірте спостережувану пропускну здатність вашого ретранслятора і швидкість (межу) пропускної здатності. Look up your relay on Metrics. Потім наведіть курсор миші на заголовок пропускної здатності, щоб побачити спостережувану пропускну здатність і швидкість пропускної здатності вузла.

Ось деякі додаткові відомості та кілька прикладів: Коли падає швидкість та Збільшення швидкості вихідного ретранслятора.

Як це виправити

Найменший з цих показників обмежує смугу пропускання, виділену ретранслятору.

  • Якщо справа у пропускній здатності, збільште BandwidthRate/Burst або RelayBandwidthRate/Burst у вашому torrc.
  • Якщо це спостережувана пропускна здатність, то ваш ретранслятор не вимагатиме більше пропускної здатності, поки бачить, що швидкість росте. Вам потрібно зрозуміти, чому він повільний.
  • Якщо це середня вимірювана пропускна здатність, ваш ретранслятор виглядає повільно в порівнянні з більшістю керівних ретрансляторів стосовно пропускної здатності. Вам потрібно дізнатися, чому вони вважають його повільним.

Виконуйте власні вимірювання характеристик ретранслятора

Якщо ваш ретранслятор вважає, що він повільний, або керівні ретранслятори пропускні здатності вважають, що він повільний, ви можете перевірити пропускну здатність самостійно:

  • Виконайте тест за допомогою tor, щоб побачити, як швидко він може працювати у вашій мережі

    For this, you need to configure a tor client to use use your relay as entry. If your relay has only Guard flag, set EntryNodes with your relay fingerprint 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. To set your relay as a bridge, add to your torrc:

    Bridge <ip>:<port>
    UseBridge 1
    

    Then download a large file using your SocksPort as a socks proxy. For this, you can use curl, eg:

    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.

    That will give you some idea of how much traffic your relay can sustain.

    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. Keep increasing the data volume until the bandwidth stops increasing.