Що вимірюється
Рахує те, що вже пройшло. Нічого не запитує спеціально.
Показники завантаження та відвантаження беруться з підрахунків, які Mac уже вів. Їх читання не відкриває власний сокет, не звертається до сервера і не запускає тест.
macOS веде безперервний лічильник байтів для кожного мережевого інтерфейсу на вашому Mac. Pinned запитує в ядра цей список раз на секунду, через sysctl(NET_RT_IFLIST2), і повідомляє різницю між одним відліком і наступним. Ця різниця і є вашою швидкістю. Це все вимірювання цілком.
Саме ці лічильники 64-бітні. Простіший інтерфейс, до якого легше звернутися, повертає 32-бітні лічильники, які переповнюються кожні 4.29 GB. На швидкому каналі це може бути кілька хвилин, і кожне переповнення виглядало б на екрані як безглузде стрибання.
Pinned не відкриває для цього власних сокетів. Жодного зонда, жодного тестового файлу, жодного сервера на іншому кінці, нічого не додано до самого трафіку, який застосунок намагається описати.
Який інтерфейс читається, визначає системний маршрут за замовчуванням, що перевіряється заново на кожному такті. Відключіть Ethernet, і показник переходить на Wi-Fi. Підключіться через телефон, і показник переходить на телефон. Налаштовувати нічого не треба, а показання, якому не можна довіряти, повідомляється як нуль, а не вгадується.
Шлях сигналу
sysctl(NET_RT_IFLIST2), підвищені привілеї не потрібніСлідує маршруту за замовчуванням