Назад | Перейти на главную страницу

Пинг с большой задержкой, но коротким сообщенным временем

Что это значит, когда пинг сообщает о разумном времени (~ 10 мс), но на самом деле занимает довольно много времени на настенных часах (~ 15 секунды)? (Дополнительно, передавая -U опция "полная задержка между пользователем" не имеет никакого эффекта.)

Это происходит при пинге определенного внешнего хоста с моего рабочего компьютера - и я ковыряюсь, потому что я также получаю таймауты на HTTP-запросы к тому же хосту. Нечто подобное происходит с traceroute только на последних паре переходов, которые достигают подсети пункта назначения.

(Кроме того, как бы то ни было, внешний хост - cdn.sstatic.net, который, как я знаю, обычно работает!)

Да, наверное, это DNS.

2 способа определения. strace -r ping ... это хорошо.

 0.000014 fcntl(4, F_SETFL, O_RDWR|O_NONBLOCK) = 0
 0.000015 poll([{fd=4, events=POLLOUT}], 1, 0) = 1 ([{fd=4, revents=POLLOUT}])
 0.000020 sendto(4, "\305\351\1\0\0\1\0\0\0\0\0\0\10intel-01\20scinterane"..., 47, MSG_NOSIGNAL, NULL, 0) = 47
 0.000022 poll([{fd=4, events=POLLIN}], 1, 5000) = 0 (Timeout)
 4.999871 socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 5

См. Задержку в 4,999 секунды в поиске DNS.

Или вы можете просто пинговать имя хоста и пинговать IP-адрес, если пинг имени хоста последовательно и значительно медленнее, чем пинг IP-адреса напрямую, разница между.

Что произойдет, если вы воспользуетесь -n флаг запрета поиска «символических имен для адресов хоста»? Тип поведения, который вы описываете, часто предполагает задержки из-за медленного обратного поиска DNS.

В приведенном вами примере (cdn.sstatic.net) я вижу, что не существует действительной обратной записи, соответствующей прямой записи (я вижу 69.174.57.102). Это именно та ситуация, которая может привести к странному поведению, если вы используете инструменты, пытающиеся выполнить обратный поиск.