Методология тестирования скорости

В данном документе подробно описана полная техническая спецификация нашего сервиса проверки скорости: измерительный движок с открытым исходным кодом, архитектура Anycast, API высокоточного тайминга браузера, статистические формулы и WebRTC-протокол измерения потерь пакетов.

Обновлено: 6 октября 2026 г.

Измерительный движок и клиентская архитектура

Наш тест скорости построен на базе @cloudflare/speedtest — открытого измерительного движка Cloudflare на языке JavaScript (лицензия MIT). Он полностью выполняется в изолированной безопасной среде веб-браузера пользователя, не требуя плагинов, отдельных исполняемых файлов или прав администратора.

Чтобы страницы с техническими статьями открывались мгновенно, измерительный движок импортируется динамически по требованию только при нажатии пользователем кнопки «Запустить тест». Мы не вносим изменений в математический алгоритм движка: все показатели рассчитываются исключительно на основе реальных сетевых событий, зарегистрированных браузером.

Инфраструктура пограничных серверов Anycast

Все HTTP-запросы на скачивание, отдачу и проверку задержки направляются к глобальной пограничной сети Cloudflare на домен speed.cloudflare.com по протоколу BGP Anycast:

  • Автоматическая маршрутизация к ближайшему узлу: Пользователю не нужно выбирать сервер вручную из сомнительных списков. Магистральные маршрутизаторы интернета автоматически направляют пакеты в ближайшую к вам точку присутствия (PoP) Cloudflare.
  • Объективная оценка «последней мили»: Сервер расположен в вашем городе или на магистральном узле обмена трафиком вашего провайдера, что позволяет протестировать пропускную способность абонентской линии без искажений от перегруженных транзитных каналов.

Последовательность тестов и фазы выполнения

  1. Фаза 1: Прогрев соединения: Выполняются нулевой запрос и запрос на 100 КБ для установки сессии TLS 1.3 и разрешения DNS-имени, исключая накладные расходы холодного старта из итоговых цифр.
  2. Фаза 2: Задержка и джиттер в покое: Отправляется серия из 21 запроса при ненагруженном канале с фиксацией медианы кругового времени (RTT).
  3. Фаза 3: Измерение входящей скорости (Download): Загружаются возрастающие блоки данных (от 256 КБ до 25 МБ и более) с хронометражем через Performance Resource Timing API.
  4. Фаза 4: Измерение исходящей скорости (Upload): Данные отправляются на сервер методом HTTP POST с фиксацией реального темпа передачи.
  5. Фаза 5: Потеря пакетов WebRTC: Отправляется поток UDP-датаграмм через TURN-реле для подсчета потерянных пакетов.

Источники и ссылки

  1. @cloudflare/speedtest (measurement engine source and documentation) Cloudflare

    How download, upload, latency, jitter and packet loss are measured by the engine this site uses.

    Проверено: октябрь 2026 г.

  2. PerformanceResourceTiming MDN Web Docs

    The browser timing API used to time each test request.

    Проверено: октябрь 2026 г.

  3. Cloudflare Realtime TURN service Cloudflare Docs

    The relay used to send and count UDP packets in the packet loss test.

    Проверено: октябрь 2026 г.

  4. Aggregated Internet Measurement (AIM) Cloudflare Docs

    Background on judging connection quality by use case rather than by a single number.

    Проверено: октябрь 2026 г.

  5. RFC 3550: RTP, A Transport Protocol for Real-Time Applications (interarrival jitter) IETF

    Formal definition of jitter used by voice and video software.

    Проверено: октябрь 2026 г.

  6. Measurement Lab (M-Lab) Measurement Lab

    Open internet measurement data and methodology.

    Проверено: октябрь 2026 г.