Сервер запускает traceroute до вашего IP и присылает хопы по мере ответа. Цель — только вы: чужие адреса трассировать нельзя.
- Запустите замер — трассировка стартует автоматически после него.
Геопозиция транзитных маршрутизаторов по базе IP приблизительна: магистральные узлы часто «прописаны» в городе головного офиса оператора.
Ваши замеры хранятся только в этом браузере.
// провайдеры
// последние замеры
IP-адреса не сохраняются: в базу попадают только город, провайдер (AS) и координаты, округлённые до ~10 км.
01 · пинг и джиттер
20 последовательных HTTP-запросов после прогрева. Время берётся из Resource Timing API (от отправки запроса до первого байта ответа), без накладных расходов JavaScript. Пинг — медиана, джиттер — среднее изменение задержки между соседними пробами.
02 · загрузка
5 параллельных потоков ~8 секунд (шестое соединение браузера оставлено под пробы пинга). Первые 2 секунды отбрасываются: TCP разгоняет окно (slow start). Данные — случайные байты, их нельзя сжать, так что gzip и кэши провайдера не «ускорят» результат.
03 · отдача
5 параллельных потоков случайных данных, скорость считается по событиям прогресса отправки браузера. Сервер читает и сразу выбрасывает всё, что пришло.
04 · пинг под нагрузкой
Во время загрузки и отдачи каждые 300 мс уходит проба пинга. Если задержка на забитом канале резко растёт — у роутера или провайдера раздутые буферы (bufferbloat): видеозвонки и игры будут лагать, даже если «скорость большая».
05 · предел физики
Свет в оптоволокне идёт ≈204 000 км/с. RTT по прямой до сервера — нижняя граница, быстрее не бывает. Реальный кабель длиннее прямой в 1,3–2 раза, плюс очереди на маршрутизаторах.
06 · стек
Один бинарник на Go без зависимостей: отдаёт страницу, генерирует трафик, стримит traceroute через SSE и геолоцирует IP по базе DB-IP. Глобус — 10 900 точек суши на canvas, без картографических библиотек.