протокол ICMP выполняет поиск DNS
Это неверно. ICMP, как и IP, работает с адресами. Когда вы используете имена, приложения (то есть программа ping
) будут запрашивать ОС, чтобы преобразовать имя в IP.
Это сопоставление может быть выполнено по-другому, и DNS является только одним среди других. В системах Unix см. Файл /etc/nsswitch.conf
, который определяет, как должны решаться различные вещи, например имена хостов. Обычно это, по крайней мере, сочетание содержимого файла /etc/hosts
и запросов DNS.
Таким образом, как только программа ping
, обычно использующая класс ОС getaddringo
, разрешает имя в IP-адрес, она начинает использовать протокол ICMP для этого адреса.
Когда Google отвечает, происходит другой поиск DNS?
Нет, с чего бы это? Опять же, когда происходит ICMP, мы уже и сейчас находимся исключительно в мире адресов, там нет имен.
сэкономить время, но не выполнять два поиска DNS?
Да, возможно, но только один раз (DNS использует кэши), и разница будет незначительной и обычно теряется во многих других вещах.
Но интересный вопрос: почему у вас есть этот вопрос, я имею в виду, что вы пытаетесь сделать таким образом? Обратите внимание, что ping
(поскольку он использует ICMP) - плохой инструмент для устранения неполадок, поскольку трафик ICMP часто настраивается в сетях совсем по-другому, чем трафик IP.
(И вам не следует использовать www.google.com
в качестве привязки для тестов, вместо этого посмотрите, например, на привязки RIPE, но опять же, это во многом зависит от того, в чем заключается ваша истинная основная проблема).