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

Сначала выберите интерфейс, потом число

Начните там, где отображается число, и прочитайте метку рядом. Окно клиента может показывать итоги сеанса, интерфейс туннеля — байты внутреннего IP, а физический адаптер — зашифрованные внешние байты; три разных счётчика, которые случайно выражены в байтах. В командной строке netstat -ibn выводит по одной строке на каждый адрес для каждого интерфейса, поэтому туннель может появиться несколько раз. Сопоставьте строку с интерфейсом, которым клиент действительно владеет, и подтвердите его маршрутом, который выбирает пункт назначения. Устройство с именем utun может принадлежать VPN, другому туннелю или чему-то, что вас не интересует.

Не заменяйте его счётчиком Wi-Fi только потому, что его легче прочитать. Другая точка наблюдения отвечает на другой вопрос.

Берите разницу, а не сумму с момента загрузки

Прочитайте строку, сделайте один небольшой разрешённый запрос, затем снова прочитайте ту же строку. Разница и есть доказательство, ведь суммарный итог с момента загрузки включает всё, что делала машина. Держите интервал коротким, чтобы фоновый трафик имел меньше возможностей его загрязнить. На загруженной машине nettop может отнести пропускную способность к процессу, что сужает поле перед возвратом к счётчикам интерфейса.

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

Внутренние и внешние счётчики измеряют разное

Физический адаптер считает зашифрованные пакеты вместе с их внешними заголовками, а интерфейс туннеля учитывает полезную нагрузку, которую получает или передаёт. Сложение обоих считает одну передачу дважды. Накладные расходы, повторные передачи и инкапсуляция также делают простое равенство невозможным.

Два счётчика, движущихся в противоположных направлениях, — это находка, а не противоречие. Обычно это означает, что трафик вошёл в один слой и так и не покинул другой.

Свяжите счётчик с результатом приложения

Полученный итог может расти из-за разговоров протокола, пока нужная вам служба всё ещё не работает. Рост отправки говорит ещё меньше: он доказывает, что ядро приняло пакет, а не то, что кто-то ответил.

Запишите точный результат рядом со счётчиками: разрешение имён не удалось, соединение истекло по времени, TLS был отклонён или пришёл ответ HTTP. Это четыре разные неисправности, и только одна из них связана с туннелем. Если доказательство должно пойти дальше, следующая точка наблюдения — шлюз или граница службы, где кто-то может увидеть, пришёл ли запрос. Сброс сетевых настроек Mac уничтожает состояние, которое вы измеряли, и ничего вам не сообщает.

Напишите заметку, которая нужна следующему человеку

Имя интерфейса, метка счётчика, интервал, значения до и после, а также результат приложения. Этого достаточно, чтобы коллега повторил наблюдение, не повторяя ваш день. Добавьте версию клиента и версию macOS, поскольку семантика счётчиков может меняться между выпусками.

Пропустите полный перехват пакетов и дамп системы. Они редко нужны, чтобы объяснить, какой локальный счётчик сдвинулся за один запрос, и замедляют каждого, кто читает отчёт. Если клиент показывает собственную статистику, цитируйте его метку дословно, а не переводите на свою. Смысл заметки — зафиксировать, что измерено, а не спорить о том, что это значит.

Похожие статьи