Верстакфорум практиков
рекламаiprazon: приватные серверные адреса IPv4 и SOCKS5, безлимитный трафик, бесплатный тест до 2 часов
ФорумСети и протоколы

ping и трассировка: что они показывают, а что нет

pingpong
pingpong
Новичок
сообщений 105
с июн, второй сезон
1 января, 08:12первое сообщение

Ник у меня, конечно, обязывает, но вопрос детский.

Пингую целевую площадку, получаю 22 мс, красота. Открываю страницу, она грузится три с половиной секунды. Запускаю трассировку, на седьмом узле идут звёздочки и до конца так и не доходит.

Площадка лежит? Провайдер режет? Куда вообще смотреть после такого вывода.

tcpdump_fan
tcpdump_fan
Знаток
сообщений 1010
с июн
8 июня, 11:29#2

Ни то и ни другое, скорее всего у вас всё в порядке.

Ping отправляет маленький пакет ICMP и ждёт такой же в ответ. Он меряет одно: сколько времени пакет летит туда и обратно. Ни соединения, ни шифрования, ни работы самой площадки в этих 22 мс нет вовсе.

Страница за три секунды это совсем другая цепочка: спросить имя у службы имён, поднять TCP, согласовать шифрование, отправить запрос, дождаться, пока сервер сходит в свою базу, забрать тело ответа. Из всего перечисленного ping закрывает только дорогу до двери.

Звёздочки в трассировке означают, что узел не ответил. Молчание узла и обрыв пути это разные вещи.

слушаю провод, а не догадки
pingpong
pingpong
Новичок
сообщений 105
с июн, второй сезон
15 ноября, 14:46#3

а звёздочки прямо совсем не страшно? их там четыре штуки подряд

ferrum
ferrum
Участник
сообщений 660
с сен
22 апреля, 17:03#4

Молчат узлы по трём причинам, и все три обычные.

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

Вторая: у узла стоит ограничение по частоте на эти ответы, и он отвечает одному из десяти.

Третья: администратор просто выключил ответы.

Смотреть надо на последнюю строку. Дошла трассировка до цели, значит путь есть, а звёздочки в середине это шум.

Ирина Пахомова
Ирина Пахомова
Новичок
сообщений 280
с янв, второй сезон
1 сентября, 08:20#5

И лучше сразу mtr вместо разовой трассировки, он гоняет пакеты по кругу и показывает потери на каждом узле в процентах.

Слава Кудрин
Слава Кудрин
Участник
сообщений 760
с авг
8 февраля, 11:37#6

Плюс к mtr: он же снимает главную путаницу с потерями. Потери на промежуточном узле почти ничего не значат, потери на последней строке значат много.

Ещё один приём для случая, когда ICMP режут целиком: трассировка по TCP на нужный порт. Идёт она теми же пакетами, какими пойдёт рабочий трафик, и часто доходит там, где обычная упирается в стену.

трассировка по TCP до порта 443
трассировка по TCP до порта 443
pingpong
pingpong
Новичок
сообщений 105
с июн, второй сезон
15 июля, 14:54#7
Слава Кудрин: идёт она теми же пакетами, какими пойдёт рабочий трафик

Проверил, дошло до конца. Тогда второй вопрос: а через посредника пинговать можно? Мне надо померить отклик именно того пути, по которому идёт сбор.

tcpdump_fan
tcpdump_fan
Знаток
сообщений 1010
с июн
22 декабря, 17:11#8

Нельзя, и это частая ловушка. Посредник передаёт TCP, а ping ходит пакетами ICMP, которые в такой канал не попадают вовсе. Что бы вы ни настроили в системе, ping уйдёт напрямую с вашей машины и покажет дорогу мимо посредника.

Мерить надо тем же способом, каким работаете. Берите время установки соединения и время до первого байта, curl отдаёт их одной строкой. Вот это будут честные числа.

слушаю провод, а не догадки
hardline
hardline
Знаток
сообщений 970
с июн
1 мая, 08:28#9

Готовая команда, чтобы не собирать по кускам:

curl -o /dev/null -s -x http://user:pass@203.0.113.10:8000 \
  -w "connect=%{time_connect} tls=%{time_appconnect} first_byte=%{time_starttransfer} total=%{time_total}\n" \
  https://example.org/

Прогнать раз тридцать и взять середину, разовый замер тут ничего не стоит.

ferrum
ferrum
Участник
сообщений 660
с сен
8 октября, 11:45#10

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

Ирина Пахомова
Ирина Пахомова
Новичок
сообщений 280
с янв, второй сезон
15 марта, 14:02#11

Вот это место люди путают чаще всего, да.

pingpong
pingpong
Новичок
сообщений 105
с июн, второй сезон
22 августа, 17:19#12

Собрал у себя, чтобы не забыть.

Ping говорит про дорогу до узла и молчит про работу площадки. Звёздочки в середине трассы это норма, смотреть надо на последнюю строку. Через посредника ping не ходит вовсе, там мерят временем соединения и первого байта.

Мои три с половиной секунды оказались временем ответа самой площадки: соединение поднимается за 40 мс, а первый байт приходит через три секунды. Ушёл читать, чем они там заняты.