1

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

$ ping imac.local
PING imac.local (192.168.0.38): 56 data bytes
64 bytes from 192.168.0.38: icmp_seq=0 ttl=64 time=4.961 ms
64 bytes from 192.168.0.38: icmp_seq=1 ttl=64 time=164.356 ms
64 bytes from 192.168.0.38: icmp_seq=2 ttl=64 time=184.635 ms
64 bytes from 192.168.0.38: icmp_seq=3 ttl=64 time=203.981 ms
64 bytes from 192.168.0.38: icmp_seq=4 ttl=64 time=128.627 ms
64 bytes from 192.168.0.38: icmp_seq=5 ttl=64 time=143.717 ms
64 bytes from 192.168.0.38: icmp_seq=6 ttl=64 time=112.190 ms
64 bytes from 192.168.0.38: icmp_seq=7 ttl=64 time=184.448 ms
64 bytes from 192.168.0.38: icmp_seq=8 ttl=64 time=205.589 ms
64 bytes from 192.168.0.38: icmp_seq=9 ttl=64 time=124.649 ms

Однако traceroute волшебно быстр:

$ traceroute imac.local
traceroute to imac.local (192.168.0.38), 64 hops max, 52 byte packets
 1  192.168.0.38 (192.168.0.38)  5.522 ms  4.412 ms  5.133 ms

Это не случайность, я запускал его несколько раз и не мог получить задержку выше 10 мс. Есть идеи, почему ping и traceroute дают разные задержки?

Редактировать: это должно быть OSX специфичным. Ноутбук с ПК и маршрутизатор Wi-Fi дают мне задержки пинга до 10 мс, тогда как пинг двух компьютеров osx друг от друга дает мне большие задержки.

1 ответ1

-1

Во-первых, есть много факторов, которые могут мешать беспроводным сигналам. Например, слишком большое расстояние или блокировка сигнала.

Во-вторых, принцип работы ping и traceroute различен.

Ping отправляет сообщение с запросом эха ICMP получателю и сообщает, получает ли он желаемое эхо ICMP (эхо-ответ ICMP). Это команда, чтобы проверить, свободно ли сеть или скорость сетевого соединения. Принцип. Используя уникальность IP-адреса устройства в сети, отправьте пакет на IP-адрес назначения. Затем попросите другую сторону вернуть пакет одинакового размера, чтобы определить, подключены ли две сетевые машины, и какова задержка.

Когда хост использует команду traceroute, он сначала отправляет пакет, содержащий заголовок IP и пакет UDP. При прохождении через маршрутизатор маршрутизатор будет уменьшать значение TTL заголовка IP и заголовка IP в заголовке ICMP на 1. Когда значение TTL ICMP равно 0, маршрутизатор отбрасывает дейтаграмму и возвращает синхронизированный пакет ICMP исходному хосту. После получения ICMP-пакета с истечением времени хост-источник добавляет 1 к TTL заголовка IP в предыдущем ICMP, чтобы продолжить отправку дейтаграмм IP, пока адрес назначения не получит дейтаграмму IP со значением TTL 1. Адрес получателя не сбрасывает дейтаграмму и возвращает сообщение ICMP о тайм-ауте. В это время исходный хост проанализирует пакет UDP в ICMP. Пакет UDP обычно использует порт, который недоступен принимающей стороне, поэтому целевой хост вернет ICMP-сообщение "Порт недоступен". Он в основном используется для определения того, истек ли тайм-аут пакета ICMP или порт недоступен. Когда исходный хост получает пакет ICMP с недоступным портом, он знает, что отслеживание маршрута завершено.

Вы можете обратиться к этой ссылке для получения подробной информации. Понимание того, как работают ping и traceroute, поможет вам лучше понять вашу проблему.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .