Почему изменяется нагрузка на узел

Tor управляет пропускной способностью по всей сети. Это обеспечивает умеренную работу для большинства узлов. Но цели Tor отличаются от таких протоколов, как BitTorrent. Tor нужны веб-страницы с низкой задержкой, что требует быстрых соединений с запасом прочности. BitTorrent нужны массовые загрузки, что требует использования всей пропускной способности.

Мы работаем над новым сканером пропускной способности, который легче понять и поддерживать. Он будет обеспечивать диагностику для узлов, которые не измеряются, и узлов, которые имеют низкие показатели.

Зачем Tor нужны сканеры пропускной способности?

Большинство провайдеров сообщают вам максимальную скорость вашего локального соединения. Но у Tor есть пользователи по всему миру, и они подключаются к одному или двум узлам Guard случайным образом. Поэтому нам нужно знать, насколько хорошо каждый узел может соединиться со всем миром.

Таким образом, даже если все операторы ретрансляции установят заявленную пропускную способность на уровне скорости локального соединения, нам все равно потребуются полномочия по пропускной способности, чтобы сбалансировать нагрузку между различными частями Интернета.

Что такое нормальная нагрузка на узел?

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

Иногда узел работает медленно, потому что его процессор медленный или его соединения ограничены. В других случаях это медленная сеть: узел имеет плохой пиринг с большинством других узлов tor, или слишком большое расстояние до узла.

Определение причины ограничения узла

У замедления узла может быть много причин. Вот как их определить.

Системные ограничения

  • Проверьте использование RAM, процессора и дескриптора порта/файла на вашем узле

Tor регистрирует некоторые из них при запуске. Другие можно просмотреть с помощью популярных или аналогичных инструментов.

Ограничения провайдера

  • Проверьте пиринг в Интернете (пропускная способность, задержка) от вашего поставщика узла к другим узлам. Узлы, проходящие через Comcast, временами были медленными. Узлы за пределами Северной Америки и Западной Европы обычно медленнее.

Ограничения сети Tor

Пропускная способность узла может быть ограничена собственной пропускной способностью узла или измеренной управляющими серверами пропускной способностью. Вот как можно узнать, какое измерение ограничивает ваш узел:

  • Проверьте каждый из голосов за ваш узел на consensus-health (страница с большим объемом данных) и проверьте медиану. Если ваш узел не помечен как Running некоторыми управляющими серверами:
    • Проверьте правильность адреса IPv4 или IPv6?
    • Возможно его IPv4 или IPv6 адрес недоступен из некоторых сетей?
    • Возможно на его IPv4-адресе более 2 узлов?

В противном случае проверьте наблюдаемую пропускную способность узла и предельную скорость передачи данных. Найдите свой узел в Метриках. Затем наведите курсор мыши на заголовок полосы пропускания, чтобы увидеть наблюдаемую полосу пропускания и скорость передачи данных.

Вот еще несколько деталей и примеров: Снижение веса консенсуса и Скорость нарастания выходного узла.

Как это исправить

Наименьшая из этих цифр ограничивает полосу пропускания, выделяемую для узла.

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

Cобственные измерения параметров работы узла

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

  • Запустите тест с использованием tor, чтобы увидеть, как быстро tor может работать в вашей сети

    Для этого вам нужно настроить клиент tor на использование вашего ретранслятора в качестве входа. Если у вашего реле есть только флаг Guard, установите EntryNodes с fingerprint вашего реле в torrc. Если у вашего реле нет флага Guard или у него есть флаги Guard и Exit, вы не можете установить свое реле в качестве узла входа (см. https://gitlab.torproject.org/tpo/core/tor/-/issues/22204), но вы можете установить его в качестве своего моста, даже если это не мост. Чтобы настроить ваш ретранслятор в качестве моста, добавьте в свой torrc:

    Bridge <ip>:<port>
    UseBridge 1
    

    Затем загрузите большой файл, используя свой Sock sPort в качестве socks-прокси. Для этого вы можете использовать curl, например:

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

    Использование разных user/password гарантирует разные схемы. Вы можете использовать $RANDOM.

    Это даст вам некоторое представление о том, какой объем трафика может выдержать ваш ретранслятор.

    В качестве альтернативы вы можете запустить relay_bw, чтобы протестировать ваш ретранслятор, используя 2 схемы перехода, аналогично тому, как это делает sbws.

  • Run a test using tor and chutney to find out how fast tor can get on your CPU. Продолжайте увеличивать объем данных до тех пор, пока пропускная способность не перестанет увеличиваться.