惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Azure Blog
Microsoft Azure Blog
T
Tor Project blog
U
Unit 42
G
Google Developers Blog
T
The Blog of Author Tim Ferriss
Recorded Future
Recorded Future
B
Blog
I
InfoQ
H
Help Net Security
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
aimingoo的专栏
aimingoo的专栏
H
Hackread – Cybersecurity News, Data Breaches, AI and More
小众软件
小众软件
Spread Privacy
Spread Privacy
T
Tenable Blog
C
Cybersecurity and Infrastructure Security Agency CISA
F
Fortinet All Blogs
Microsoft Security Blog
Microsoft Security Blog
I
Intezer
P
Proofpoint News Feed
A
About on SuperTechFans
S
Securelist
D
DataBreaches.Net
Security Latest
Security Latest
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Threat Research - Cisco Blogs
Know Your Adversary
Know Your Adversary
大猫的无限游戏
大猫的无限游戏
Cyberwarzone
Cyberwarzone
AWS News Blog
AWS News Blog
Engineering at Meta
Engineering at Meta
MyScale Blog
MyScale Blog
V
Visual Studio Blog
A
Arctic Wolf
Hugging Face - Blog
Hugging Face - Blog
Project Zero
Project Zero
博客园 - 司徒正美
美团技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
B
Blog RSS Feed
Vercel News
Vercel News
T
Threatpost
博客园 - Franky
有赞技术团队
有赞技术团队
爱范儿
爱范儿
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
D
Darknet – Hacking Tools, Hacker News & Cyber Security
L
LINUX DO - 热门话题

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Как измерить скорость интернета?
Valen-rus (М · 2026-05-21 · via Все публикации подряд на Хабре

Как измерить скорость интернета?

Уровень сложностиСредний

Время на прочтение8 мин

Охват и читатели30

Аналитика

И почему объективное измерение скорости мобильного интернета - это непростая инженерная задача

Для инженеров мобильного оператора контроль качества сети (QoS) и пользовательского опыта (QoE) является критически важной задачей. В условиях высокой конкуренции и растущих требований к трафику недостаточно просто знать, что «интернет работает». Необходимо иметь точные и объективные инструменты, способные не только зафиксировать пиковую пропускную способность канала, но и провести глубокую диагностику, определив, где именно возникла проблема: в радиоинтерфейсе (RAN), в транспортной сети, на сервере провайдера контента или в самом устройстве абонента.

На первый взгляд, казалось бы, задача проста: скачать файл известного объема, замерить время и вычислить скорость. Однако на практике эта «простая» задача превращается в сложный инженерный вызов. Мобильная сеть - это динамическая среда с нестабильными параметрами: задержка (RTT) может скакать от 15 до 100 мс, вероятность потери пакетов варьируется в зависимости от загрузки соты и хендоверов (переходов из одной соты в другую), а каналы загрузки (DL) и выгрузки (UL) часто асимметричны.

Именно поэтому стандартные методы тестирования, основанные на простом скачивании файла, часто дают искаженную картину. Разные приложения могут показывать результаты, отличающиеся в разы, даже при измерении в одной и той же точке сети.

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

Часть 1. Скорость передачи данных

Начнём с азов, которые вызывают проблемы скорости. Представим, что мы разработчики архитектуры приложения по измерению скорости. С какими очевидными и не очень проблемами мы столкнёмся?

Для тестов мы хотим передать некие данные. И тут уже возникает дилемма. Транспортный уровень модели OSI нам предлагает выбор протокола TCP или UDP. Выбор этот зависит от того, какую ситуацию мы хотим проверить. Если мы хотим проверить как, например, будут работать HTTPS сервисы, то очевидный выбор TCP, но если нам важно проверить реальную ширину интернет канала как в Downlink (DL), так и в Uplink (UL) или же тестом мы хотим сымитировать популярный в настоящее время для стриминговых сервисов протокол QUIC, то тогда нам более релевантен будет UDP.

А разве при выборе TCP/UDP будет отличаться скорость? Да, и зачастую очень сильно.

TCP- это протокол с подтверждением доставки. Одним из ключевых факторов является RTT(Round-Trip-Time) или, проще говоря, время за которое пакет может дойти от сервера к клиенту и вернутся обратно.

Классической формулой, определяющей придельную скорость передачи TCP, является формула Мэтиса

MSS — Maximum Segment Size (максимальный размер сегмента), обычно 1460 байт для Ethernet. RTT — Round-Trip Time (время приема-передачи, latency). p- вероятность потери пакета (0…1)

MSS — Maximum Segment Size (максимальный размер сегмента), обычно 1460 байт для Ethernet. RTT — Round-Trip Time (время приема-передачи, latency). p- вероятность потери пакета (0…1)

В знаменателе формулы мы видим, что в случае TCP рост RTT влияет даже сильнее, чем кратный ему рост потерь пакетов! Почему нам это важно? Потому что в случае, если мы планируем измерять скорость мобильного интернета, то должны учитывать, что в мобильной сети RTT не является стабильным параметром и легко может плавать от 15 до 100 мс и больше. Влияет на RTT в мобильных сетях несбалансированность каналов UL и DL (ёмкость канала DL в несколько раз выше), загрузка сотовой сети и вызванные этим очереди пакетов в буфере базовой станции, а также хендоверы от одной базовой станции к другой, когда для IP пакетов динамически перестраиваются маршруты между БС. У протокола UDP нет зависимости от RTT, данные идут заранее заданным тестировщиком сплошным потоком, что позволяет измерить максимальную пропускную способность на канальном/физическом уровне. Кроме этого, протокол UDP даёт возможность измерить джиттер, это важно для real-time сервисов.

Получается использовать TCP для измерения скорости мобильной сети нельзя раз так всё плохо?

Без понимания работы протокола TCP скорее всего наше приложение будет показывать скорости существенно ниже реальной пропускной способности. Но при должной настройке TCP вполне пригоден для измерения скорости. Забегая вперёд, скажу, что большинство сервисов по измерению скорости используют именно TCP с разной степенью оптимизации проблем данного протокола.

Как сервер влияет на скорость передачи данных?

Самое очевидное — это пропускная способность нашего сервера. Для стабильной работы при множестве единовременных измерений нужен сервер с сетевым интерфейсом как минимум 10G портом. И самое простое, приходящее на ум решение - арендовать VPS-ку, таит в себе ряд подводных камней.

Провайдер VPS должен иметь «жирные» сетевые стыки с основными телеком провайдерами и честно делить ресурс физического канала согласно тарифу. А также следить за нагрузкой, контролировать, чтобы не возникало задержек, вносимых гипервизором на обработке трафика в виртуальном коммутаторе. В современных облачных средах эта проблема может решаться через технологии аппаратной виртуализации ввода-вывода, таких как SR-IOV. Но в любом случае, параметры VPS сервера необходимо детально уточнить.

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

В идеале, тестовый сервер должен находится в каждом крупном городе.

Как TCP влияет на скорость передачи?

Выше мы уже разобрали, что ключевыми факторами, влияющими на скорость TCP является задержка и потери пакетов. Первое и самое простое решение, чтобы улучшить работу TCP — использовать многопоточную передачу данных. Если параллельно запустить десяток TCP сессий, то такое соединение будет меньше подвержено эффекту «медленного старта», когда скорость передачи, зачастую, не успевает разогнаться до максимума за короткое время теста. Кроме того, многопоточность позволяет снизить влияние потери пакетов в отдельных сессиях на суммарную пропускную способность. Также многопоточность уменьшает влияние на скорость от нарушения порядка принимаемых IP пакетов.  Но обратная сторона большого числа сессий - это рост overhead-ов, большая нагрузка UL канала ACK сообщениями, что может быть критично в случае несимметричного DL/UL канала, а также нагрузка на «железо» смартфона, связного с обработкой большого числа сессий. Оптимальное количество TCP сессий обычно лежит в диапазоне 5-10 сессий и зависит от используемого на сервере механизма TCP Congestion Control.

Собственно алгоритм TCP Congestion Control является вторым важным механизмом адаптации TCP. Современные алгоритмы Congestion Control способны значительно модернизировать формулу Мэтиса, указанную выше, и снизить зависимость скорости TCP от задержек. Оптимальный же метод TCP Congestion Control будет зависеть от архитектуры и логики нашего приложения. Отдельно останавливаться на алгоритмах не буду, на Хабре есть хорошие статьи на эту тему. Скажу лишь, что скорее всего оптимальным выбором для speedtest сервера (с прицелом на тесты мобильного интернета) будет алгоритм BBR. Подробности его работы прекрасно описаны в блоге Яндекса.

Подводя итоги:

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

Часть 2. Средства измерения скорости

Перейдём ко второй части: посмотрим какие варианты для измерения скорости сети есть сейчас, после запрета в РФ самого популярного сервиса Ookla Speedtest.  Из предыдущей части мы поняли, что сервис качественного измерения скорости — это не простой технически и довольно затратный финансово проект. Я выделил 6 наиболее релевантных сервисов измерения скорости, имеющих несколько серверов в России.

Какие на данный момент есть аналоги для измерения скорости?

Яндекс.Интернетометр, Мегабитус, nPerf, Merilo, ПроСеть, Госуслуги.

Краткое описание сервисов:

Сервис

Описание

Яндекс Интерентометр

Сервис от Яндекса с широкой географией серверов, поддержкой IPv6 и шифрованием TLS 1.3. Есть как WEB версия, так и мобильное приложение, дублирующее функционал WEB.

Мегабитус

Отечественный сервис от ИА Telecom Daily, размещенный на серверах Яндекса и операторов связи; отображает карту измерений других пользователей и доступен в мобильных магазинах приложений.

NPerf

Популярный французский сервис с ограниченным количеством серверов в РФ; позволяет вручную выбирать сервер, измеряет скорость открытия сайтов, качество стриминга YouTube и показывает статистику по операторам за последние 14 дней.

Merilo

Сервис от платформы VIGO с несколькими серверами в крупных городах России; измеряет время старта видео при разных битрейтах, проверяет доступность пользовательских URL и пинг; доступен в AppStore и Play Market.

ПроСеть

Сервис от ЦМУ Роскомнадзора, доступный только в RuStore; шифрование TLS 1.3; предоставляет функции проверки доступности ресурсов, трассировки маршрута и, неожиданная функция для приложения измерения скорости: приложение позволяет подать жалобу в РКН!

Госуслуги

Встроенный в мобильное приложение сервис проверки скорости, имеет широкую географию серверов, шифрование TLS 1.3 По информации СМИ, в качестве базы (вероятно SDK) используется сервис Мегабитус.

На примере Госуслуг и Яндекса посмотрим, как работает измерение скорости в данных приложениях.

Госуслуги

Госуслуги

Госуслуги

Посмотрим с использованием Wireshark, что на протокольном уровне использует приложение.

Закачка идёт в 7 потоков с одного сервера

Закачка идёт в 7 потоков с одного сервера

По RIPE IP мы видим, что сервер развёрнут на виртуалке Yandex Cloud. Используется TCP, в 7 потоков.

Яндекс Интернетометр

Яндекс Интернетометр

Яндекс Интернетометр

Также при помощи Wireshark посмотрим как реализовано измерение скорости на уровне IP.

Используется TLS 1.3.  Закачка у Яндекса идёт в 3 потока. Но интересно то, что у Яндекса разделение потоков идёт не «классически» по портам, а по IP адресам. Все 3 адреса принадлежат одной ASN, но разным хостам:

cloudcdn-mar-63.cdn.yandex.net

cloudcdn-m9-4.cdn.yandex.net

cloudcdn-std-10.cdn.yandex.net

Это интересное решение, которое, по всей видимости, позволяет Яндексу балансировать нагрузку между различными CDN, которые, вероятно, географически разнесены и имеют разную транспортную маршрутизацию.  Если так, то такое решение заметно повышает стабильность соединения.

TCP поток, как видно, близок к идеальному — быстрый старт, ровная «полка» скорости.

Пропускная способность TCP (1 поток)

Пропускная способность TCP (1 поток)

К сожалению, ни Яндекс, ни Госуслуги не дают возможности выбора сервера, что может быть важно, например, в сравнении разных операторов. При случайном выборе серверов нельзя быть уверенным, что измерения проходят в одинаковых условиях.  

Ряд сервисов, таких как Merilo, NPerf дают вручную выбирать тестовый сервер, что является плюсом.

А что, если хочется довольно точно измерить скорость до своего собственного сервера?

Даже, возможно, до домашнего роутера? Можно, конечно, просто скачивать тестовый файл, но из-за описанных выше ограничений это часто не даст объективной картины.

Наиболее точно измерить скорость позволит тул iPerf3 — это бесплатная кроссплатформенная консольная утилита для тестирования пропускной способности сети. Сайт проекта: https://iperf.fr/

iPerf3 позволяет менять протоколы UDP/TCP, изменять количество потоков, менять характеристики TCP. Плюсом для «домашнего» тестирования является то, что iPerf3 сервер и клиент можно запустить даже на многих популярный роутерах, таких как Keenetic, MikroTik и др.

Пример теста iPerf через мобильный клиент (Android)

Тест скорости до собственного сервера через IPerf3

Тест скорости до собственного сервера через IPerf3

Что используем мы в МегаФон?

Всё зависит от задачи. Когда необходимо проверить пользовательский сервис, то приоритетом является измерение скорости до серверов контент-провайдера, например Яндекс.

Если же нам необходимо проверить скорость непосредственно внутри контура компании, например, чтобы определить, как отрабатывает радиосеть (RAN), то используем iPerf тестирование до собственных серверов.

Какой ещё аспект тестирования стоит раскрыть подробнее?

Валентин Кузьмин

Главный эксперт по сквозной оптимизации в компании «МегаФон»