О проекте
NetDiag+ делает Dmytro Tishchenko, независимый iOS-разработчик. Приложение выросло из простого раздражения: каждый инструмент говорил, что соединение в порядке, пока звонки заикались и игры лагали, и ни один не мог сказать, кто виноват.
Поэтому приложение измеряет, а не гадает — сырые ICMP и TCP с телефона, роутер проверяется отдельно от интернета, джиттер и потери показываются рядом с задержкой, — а гайды на этом сайте объясняют, как читать эти числа. 27 инструментов, 13 языков; каждое измерение выполняется на устройстве, результаты остаются в его Истории.
Как получаются эти числа
Каждое измерение выполняется на телефоне, без единого моего сервера на пути. Ping — это сырой ICMP через непривилегированный датаграммный сокет, поэтому не нужен ни джейлбрейк, ни особый entitlement; а когда сеть фильтрует ICMP — а большинство мобильных операторов его фильтруют — инструмент повторяет попытку по TCP на тот порт, который хост действительно слушает, и помечает это прямо в строке, вместо того чтобы показать ложный таймаут.
Важнее протокола оказались две привычки. Первая — роутер измеряется отдельно от интернета: если уже первый хоп медленный, все удалённые числа завышены, и приложение говорит об этом вслух, а не даёт свалить вину на игровой сервер. Вторая — в строке стоит медиана одиннадцати попыток, а не среднее, и рядом с ней джиттер и потери. Один выброс сдвигает среднее и не может сдвинуть медиану, а соединение на 40 мс с джиттером 30 мс играется хуже ровных 120 мс — среднее прячет ровно это.
Чего оно тебе не скажет
iOS не даёт сырых сокетов, поэтому ответы приходят без своего IP-заголовка, и трассировка не может показать TTL, который вернул хоп. В фоне ничего не измеряется: измерения живут, пока открыт инструмент. Внутриигровая задержка — не то же число, что пинг до того же региона, потому что игра добавляет сверху свой тикрейт и буферизацию. А на сотовой линии очередь принадлежит оператору — приложение может доказать, что она есть, и не может с ней сделать ничего. Там, где есть такое ограничение, гайды его называют.
Для кого это
Для тех, кому сказали, что с интернетом всё в порядке. Для геймеров, у которых спидтест показывает 300 Мбит, а матч дёргается; для удалёнщиков, у которых звонок рассыпается, пока заливается бэкап; и для всех, кто собирается писать в поддержку провайдера и кому нужно что-то долговечнее скриншота. Гайд про доказательства существует потому, что серия измерений с датами проводит обращение дальше первой линии поддержки, а одно показание — нет.
Как оно сюда пришло
Всё выходило открыто, по одной проблеме за раз:
- 1.4.5 — тест bufferbloat: пингует роутер и интернет одновременно под нагрузкой, ставит оценку от A до F и называет того, кто копит очередь.
- 1.4.6 — Панель задержек: игровые регионы, CDN-узлы и операторы, которые важны именно в твоей стране, отсортированы от худшего, роутер проверяется первым. Текстовый экспорт из каждого инструмента для обращений к провайдеру.
- 1.4.7 — пояснения к измерениям на всех 13 языках; deep links, чтобы гайд открывал нужный инструмент.
- Дальше — сборка под Android и таблицы эндпоинтов по странам для новых рынков.
Контакты
Вопросы, баги, число, которое выглядит неправильно: support@netdiag.online · @Tischenkod80
Скачать в App StoreБесплатно · 27 инструментов · разовая покупка убирает рекламу · без подписки