четверг, октября 11, 2012

Для чего нужен пинг (ping) и тресерт (tracert)…


Допустим, мы с вами решили собрать сеть всего из двух компьютеров.  Что мы для этого будем делать? Мы возьмем и соединим сетевые карты компьютеров с помощью кроссоверного патчкорда. Подумайте, что вы будите делать дальше? Кинетесь сразу же играть в игрушки по сети? Конечно же нет, сначала вы проверите работоспособность собранной сети. Возникает другой вопрос как же это сделать? Конечно, можно расшарить на одном компьютере сетевую папку и попробовать скопировать из нее файлы на другой компьютер, но поверьте мне, есть более элегантные способы проверить работоспособность вашей сети, вот именно о них  мы и поговорим сегодня в данной статье.


Не буду вас долго томить и сразу перейду к делу. В большинстве существующих операционных систем (Windows, Linux, MAC OS) присутствуют встроенные утилиты позволяющие проверить связность сети (тоесь проверить видит один компьютер другой или нет) этими утилитами являются ping и tracert (в ОС Linux traceroute). Попытаюсь объяснить вам назначение этих утилит.

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








Утилита ping является консольной, то есть доступна из командной строки. Для того чтобы ее использовать необходимо ввести команду ping, а через пробел написать IP адрес компьютера, который проверяется на доступность, или же его доменное имя (например yandex.ru). Посмотрим как применяется ping на практике. Откройте командную строку вашего компьютера, подключенного  к интернету, и введите в нее команду ping 8.8.8.8 (Все примеры, приведенные далее выполнялись в ОС семейства Windows)

Выполнение команды ping
В данном примере вы проверили на доступность сервер с IP адресом 8.8.8.8 (DNS сервер Google). Как видно из рисунка утилита ping четыре раза отправляла запросы по 32 байта   на указанный вами адрес и четыре раза получила ответ на них (по умолчанию отправляется 4 запроса). Параметр «время» показывает сколько времени прошло с того момента, как был отправлен запрос, до того момента как был получен ответ на него. Параметр TTL дословно расшифровывается как (Time to live), и помогает узнать через сколько маршрутизаторов прошли пакеты  пока  добирались до пункта назначения. Операционная система устанавливает некоторое значение TTL по умолчанию (например, Windows устанавливает TTL равным 128), а при прохождении через каждый маршрутизатор данное значение уменьшается на 1. Разберем пример на рисунке выше.  Когда я пингую адрес 8.8.8.8, мой маршрутизатор под линуксоподобной ОС выставляет TTL равным 64, пока пакеты движутся в направлении 8.8.8.8 от TTL  отнимается по 1 при прохождении через каждый маршрутизатор. В итоге, когда пакеты достигают адреса 8.8.8.8, их TTL равен 46 или 47.


Посмотрим как будет выглядеть результат выполнения команды ping, если проверяемый адрес недоступен. Результат представлен на рисунке.
Запрашиваемый сервер не отвечает на запрос
Команда ping имеет ряд параметров. Рассмотрим наиболее часто используемые из них.

Ping <адрес> –t позволяет отправлять ICMP запросы (пинговать) бесконечно долго, пока вы сами не прекратите этот процесс путем нажатия Ctrl+C. Иногда бывает очень удобно пинговать какую либо железку с параметром –t во время ее настройки, для того чтобы наблюдать как она себя поведет при изменении конфигурации.
Выполнение команды ping с параметром t
Ping <адрес> –n дает возможность задать точное число отправляемых ICMP запросов.
С помощью параметра n выставили отправлять всего 2 запроса
Ping <адрес>  –l позволяет управлять длиной отправляемых запросов.
Отправляем запросы по 999 байт
У команды ping есть еще много параметров, просмотреть их список и их назначение можно выполнив в командной строке команду ping /?
Получение справки
Теперь настало время рассмотреть вторую утилиту – tracert. Для объяснения принципа ее работы вспомним тот же самый случай из детства – «Вы гуляете, мама на балконе». Допустим вы отошли от своего места прогулки немного дальше чем обычно, и уже не слышите как мама завет вас. Но к счастью во дворе гуляет ваша знакомая, которая слышит вашу маму, отвечает ей что вас во дворе нет, но она знает где вас найти, после чего она бежит искать вас, находит и передает вам сообщение от мамы. Tracert действует аналогично, вы отправляете ICMP запрос к какому либо узлу, и пока запрос не достигнет данного узла, вам будут отвечать все маршрутизаторы, через которые проходил запрос.
Результат работы утилиты tracert
Действие аналогичное утилите tracert можно получить используя команду ping с параметром –i, который задает время жизни пакета TTL, вот только выполнять ее потребуется несколько раз. Например, используя команду ping 8.8.8.8 –i 1, вы получите первый маршрутизатор на пути к 8.8.8.8, используя команду ping 8.8.8.8 –i 2 – второй и т.д.

Надеюсь прочтя эту статью вы смогли получить основное представление о назначение команд ping и tracert =) 

21 коммент.:

Сравнение как мама кричит с балкона и ping идет это конечно сильно)))) И, кстати, слово "то есть" пишется раздельно)))

Спасибо за подсказку, буду знать=) Между прочим это еще не самое веселое сравнение пинга, которое я слышал=)

ping 8.8.8.8 –I 1 не работает
Параметр "I" неизвестен. Windows 7 x64

Сильно извеняюсь, Действительно немного накосячил в тексте статьи =( Под ping "8.8.8.8 –I 1" подразумевалось "ping 8.8.8.8 –i 1". То есть параметр i должен писаться именно в виде строчной буквы. В тексте статьи сейчас исправлю.

Хорошая статья)) Спасибо автору за простое понятное разъяснение!

а если при tracert выдаются *** на каких либо шагах, а потом идет дальше, что это значит?

Скорее всего устройство настроено так, что оно не отвечает на icmp пакеты, либо же имеется фаервол который их не пропускает.

Для чего нужен пинг (ping) и тресерт (tracert)…
---
Прочитал в заголовке "тресерт". Подумал, что за птица? Оказался старый-добрый трэйсрут. :)
В программной инженерии слово трэйс означает "трассировка". Например, в отладчиках программ везде используется.

"воскресенье, ноября 02, 2014"
Ок, спасибо) Просто привык использовать в устной речи выражение тресерт) Ничего не могу поделать

Подскажите, как устранить проблему: при выполнении команды tacert в первом пункте выдаёт значение "* * *", что это означает?

Этот комментарий был удален автором.

*tracert
И напротив этого значения * * * написано "Превышен интервал ожидания для запроса"

Выше же написано

"Скорее всего устройство настроено так, что оно не отвечает на icmp пакеты, либо же имеется фаервол который их не пропускает."

Потрудитесь читать все комментарии и не задавать глупых вопросов уважаемый Юнный стрелок

При запуске "tracert" программа "cmd" ругается, что - "tracert не является внутренней или внешней программой, исполняемой программой или пакетным файлом".

Добрый день Евгений, какая у вас операционная система?

Отправить комментарий