Про проєкт
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 інструментів · разова покупка прибирає рекламу · без підписки