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

Как работает ping, когда имя хоста имеет несколько IP-адресов?

Например, google.com имеет хотя бы эти ip:

74.125.225.49
74.125.225.51
74.125.225.81

Делает ping просто выбрать одно из них наугад?

Ответ в том, что это зависит от того, как настроен ваш DNS-преобразователь, а также от того, как настроен DNS-сервер для рассматриваемого домена.

DNS-преобразователь на вашем хосте-источнике ping сверится с конфигурацией ОС и сети, чтобы найти хост, который вы хотите проверить. Если это новый хост, для которого вы ранее не выполняли поиск, последовательность запросов DNS будет идти от начала до конца.

Количество записей A и их содержимое, а также порядок их возврата зависит от серверов имен для целевого домена назначения ping. Этот процесс - совсем другое обсуждение.

Ваш DNS-клиент выберет один из этих IP-адресов, возвращенных в записях A, и ваш ping начнет отправлять сообщения эхо-запроса IMCP на этот IP-адрес назначения.

Ваша локальная ОС может кэшировать один или несколько ответов в течение некоторого периода времени, обычно, но не всегда, TTL, указанный в записи A. Опять же, существует еще одна возможность кэширования на вашем DNS-преобразователе, которая обычно, но не всегда, будет соответствовать TTL.

Еще одна проблема - это так называемый порядок сортировки, выполняемый некоторыми DNS-клиентами. Видеть:

http://www.tylek.org/?p=33


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

ПРОЦЕСС PING

    The source host generates an ICMP protocol data unit.
    The ICMP PDU is encapsulated in an IP datagram, with the source and destination IP addresses in the IP header. At this point the datagram is most properly referred to as an ICMP ECHO datagram, but we will call it an IP datagram from here on since that's what it looks like to the networks it is sent over.
    The source host notes the local time on it's clock as it transmits the IP datagram towards the destination. Each host that receives the IP datagram checks the destination address to see if it matches their own address or is the all hosts address (all 1's in the host field of the IP address).
    If the destination IP address in the IP datagram does not match the local host's address, the IP datagram is forwarded to the network where the IP address resides.
    The destination host receives the IP datagram, finds a match between itself and the destination address in the IP datagram.
    The destination host notes the ICMP ECHO information in the IP datagram, performs any necessary work then destroys the original IP/ICMP ECHO datagram.
    The destination host creates an ICMP ECHO REPLY, encapsulates it in an IP datagram placing it's own IP address in the source IP address field, and the original sender's IP address in the destination field of the IP datagram.
    The new IP datagram is routed back to the originator of the PING. The host receives it, notes the time on the clock and finally prints PING output information, including the elapsed time.

Вышеупомянутый процесс повторяется до тех пор, пока все запрошенные пакеты ICMP ECHO не будут отправлены и не будут получены их ответы или пока не истечет 2-секундный тайм-аут по умолчанию. По умолчанию 2-секундный таймаут является локальным для хоста, инициирующего PING, и НЕ является значением времени жизни в дейтаграмме.

Больше: http://www.inetdaemon.com/tools/ping/how_ping_works.shtml