Почему Tor кажется медленнее VPN: клики против загрузок
Задержка Tor и VPN бьёт по разным нагрузкам: диагностируйте залипшую страницу, прежде чем винить пропускную способность, и меняйте по одной переменной за тест.
Страницы, которые кажутся залипшими, пока загрузки идут с обычной скоростью, описывают круговые обходы, а не пропускную способность. VPN добавляет один зашифрованный переход, а цепочка Tor — несколько, и каждый лишний переход стоит рукопожатия, прежде чем сдвинется хоть один полезный байт. Эта цена видна на странице, открывающей много коротких соединений, и почти исчезает при одной большой передаче. Как только закономерность становится видна, спор перестаёт быть о том, какой инструмент быстрее.
Симптом указывает на стоимость установки, а не на ёмкость
Загрузка страницы — это цепочка зависимых обменов: поиск имени, транспортное рукопожатие, рукопожатие TLS, затем первый запрос. Каждый переход на пути вставляет свой круговой обход в эту цепочку, прежде чем что-либо отрисуется. Большая загрузка платит ту же стоимость установки один раз и затем течёт, и именно поэтому две нагрузки расходятся.
В панели сети читайте время ожидания до первого байта, а не общее. Долгое ожидание при короткой загрузке содержимого указывает на круговые обходы, тогда как долгая загрузка при коротком ожидании — на пропускную способность. Повторите против второго получателя, потому что один узел за занятым ретранслятором ничего не доказывает. Когда передача в порядке, а клик медленный, подозревайте стоимость установки намного раньше пропускной способности.
Задержка и ёмкость отказывают по-разному
Сделайте два замера, и большая часть путаницы разрешается сама. Задержка — фиксированная цена за обмен, а ёмкость — скорость во времени, поэтому один путь может быть хорош в первом и плох во втором. Удалённая конечная точка с простаивающим процессором быстро отвечает на небольшой запрос и всё же ограничивает устойчивую передачу тем, что позволяет её восходящий канал. Пользователи переживают этот раскол как быстрый клик, за которым следует полоса прогресса, едва движущаяся.
Проверяйте ёмкость устойчивой передачей и смотрите, держится ли скорость стабильно или пилит. Проверяйте задержку небольшим запросом, повторённым много раз, и читайте разброс, а не лучший образец, потому что широкий разброс ощущается хуже, чем подсказывает среднее. Записывайте оба числа до и после каждого изменения, иначе позже припишете заслугу не той переменной.
Обращение с двумя как с одним числом порождает исправления, которые никогда не двигают важное для вас измерение. Это самый частый способ ответить на жалобу о задержке апгрейдом пропускной способности.
Луковая маршрутизация добавляет переходы, которые вы не выбирали
Цепочка Tor обычно использует три ретранслятора — охранный узел, средний узел и выход — и клиент выбирает их из консенсуса, а не с карты. Поэтому путь может быть намного длиннее прямой линии до места назначения. Каждый ретранслятор несёт и чужой трафик, так что ваш поток делит ту ёмкость, что у него осталась.
Повторное использование цепочки смягчает цену, потому что новый поток может ехать по существующей цепочке вместо оплаты ещё одного построения. Клиент, который строит свежую цепочку на каждый запрос, платит за установку снова и снова и ощущается намного хуже того, кто использует повторно. Выбор выхода тоже важен, потому что некоторые выходы несут более тяжёлую нагрузку, и ничто в интерфейсе не говорит, на какой вы попали. Это совместное использование и есть смысл замысла и причина, по которой задержку нельзя настроить на фиксированное значение, поэтому один медленный выход — слабая причина бросать такую схему.
Изменение порядка цепочки меняет эксперимент
Сначала VPN, потом Tor — это другой эксперимент, чем сначала Tor, потом VPN. В первом варианте конечная точка VPN несёт всю цепочку, поэтому ваша сеть доступа узнаёт только адрес VPN. Во втором само соединение VPN несётся внутри лукового пути, и выход видит трафик VPN. Оба варианта законны, и сравнение любого из них с голым VPN измеряет другое, поэтому страница проекта Tor о совмещении двух подаёт это как вопрос о том, что вы пытаетесь скрыть, раньше, чем как вопрос о времени.
Держите устройство, сеть доступа и назначение неизменными и меняйте ровно один элемент между прогонами. Перемещение серверов, цепочек и тестовых узлов вместе создаёт разницу, которую никто не сможет отнести. Запишите, что каждая схема от кого скрывает, прежде чем оптимизировать её, потому что быстрая цепочка, раскрывающая то, что вы хотели скрыть, не является улучшением.
Сравнение, которое переживает второй прогон
Выберите два или три адреса, которыми вы действительно пользуетесь, и замерьте одно и то же взаимодействие на каждом, включая страницу, тянущую много мелких ресурсов, и одну большую передачу. Повторите весь набор в другое время суток.
Сообщайте медиану и худший случай вместо самого быстрого образца, потому что интерактивную работу судят по её плохим моментам. Отметьте клиента, конечную точку или выход и то, использовалась ли цепочка или туннель повторно в этом прогоне. Если изменение улучшает медиану, но ухудшает хвост, это обмен, а не победа, и решить, заметят ли это пользователи, — и есть настоящее решение.