Возможности icmp, ping, traceroute (trasert)
ICMP (англ. Internet Control Message Protocol — протокол межсетевых управляющих сообщений) — сетевой протокол, входящий в стек протоколов TCP/IP. В основном ICMP используется для передачи сообщений об ошибках и других исключительных ситуациях, возникших при передаче данных, например, запрашиваемая услуга недоступна, или хост, или маршрутизатор не отвечают. Также на ICMP возлагаются некоторые сервисные функции.
Хотя формально ICMP использует IP (ICMP-пакеты инкапсулируются в IP пакеты), он является неотъемлемой частью IP и обязателен при реализации стека TCP/IP. Текущая версия ICMP для IPv4 называется ICMPv4. В IPv6 существует аналогичный протокол ICMPv6.
ICMP-сообщение строится из IP-пакетов, сгенерировавших ICMP-ответ. IP инкапсулирует соответствующее ICMP-сообщение с новым заголовком IP (чтобы отправить ICMP-сообщение обратно отправителю) и передает полученные пакеты дальше.
Ping — утилита для проверки соединений в сетях на основе TCP/IP, а также обиходное наименование самого запроса.
Программа ping является одним из основных диагностических средств в сетях TCP/IP и входит в поставку всех современных сетевых операционных систем.
Практическое использование
· Можно узнать IP-адрес по доменному имени.
· Можно узнать, работает ли сервер. Например, системный администратор может узнать, завис ли только веб-сервер или на сервере глобальные проблемы.
· Можно узнать, есть ли связь с сервером. Например, проблемы с настройкой DNS серверов на машине можно узнать, задав в ping сначала доменное имя, а потом IP-адрес.
· Также можно узнать качество канала, посмотрев, сколько ответов не пришло. Это часто используется игроками в сетевые игры, потому что качество связи для них очень важно. Хотя не всегда это является показателем качества связи, в некоторых сетях протокол ICMP может иметь низкий приоритет либо блокироваться полностью.
Неудачная попытка соединения с каким-либо компьютером, или ошибка получения доступа к общим файлам и папкам, находящимся на других компьютерах локальной сети, может быть вызвана тем, что другие компьютеры просто не получают отправленных им запросов на подключение. Для того чтобы протестировать работоспособность сетевого аппаратного обеспечения, а также среды передачи данных, достаточно выполнить команду ping x.x.x.x, заменив x.x.x.x IP-адресом шлюза или любого другого компьютера сети. Если посланный пакет данных типа ECHO успешно возвратится на пользовательский компьютер, это значит, что с физической частью сети все в порядке. Принцип работы команды ping состоит в следующем: Команда отправляет запросы к удаленному компьютеру с использованием при этом специального протокола ECHO. Получив такой запрос, удаленный компьютер сразу же отправляет его обратно по тому адресу, откуда он пришел, команда ping позволяет узнать, пришли ли обратно посланные запросы.
Таким образом, команда ping позволяет протестировать соединение между двумя компьютерами на очень низком (физическом) уровне. При успешном возвращении запросов можно быть уверенным в том, что среда передачи данных, программное обеспечение TCP/IP, а также все устройства (маршрутизаторы, повторители и др.), встретившиеся на пути между двумя компьютерами, работают нормально. Необходимо отметить, что даже при отсутствии каких-либо неисправностей на пути между двумя компьютерами, один или сразу несколько пакетов могут быть утеряны, как правило, это связано с перегруженностью сети, а также с тем, что большинство маршрутизаторов отводит диагностирующим пакетам очень низкий приоритет. Если хотя бы один из посланных пакетов вернется, это уже будет означать исправность работы сети. Еще одним из распространенных вариантов выполнения команды ping является использование параметра -t. Это повторяет запросы к удаленному компьютеру, пока программа не будет остановлена (например, с помощью комбинации клавиш <Ctrl+C>). Как правило, подобная практика бывает полезна при устранении неисправностей сети. Запущенный “бесконечный” тест команды ping наглядно поможет отслеживать результаты каких-либо внесенных изменений.
Запуск команды ping с ключами (-n) и (-l) позволит несколько расширить параметры опроса, а именно: ключ (-n) - указывает фиксированное количество отправляемых пакетов, (-l) - размер одного пакета-передачи, ограниченного максимальным значением в 64кБ.
Следует также отметить параметр TTL (time to Live - "время жизни пакета"), который может принимать значения 32, 64, 128. Он предусмотрен для того чтобы при поиске места назначения пакета маршрутизаторы не зацикливались. Как только значение этого параметра превышает допустимое, пакет считается попавшим в цикл и уничтожается.
Traceroute — это служебная компьютерная программа, предназначенная для определения маршрутов следования данных в сетях TCP/IP. Traceroute может использовать разные протоколы передачи данных в зависимости от операционной системы устройства. Такими протоколами могут быть UDP, TCP, ICMP или GRE. Компьютеры с установленной операционной системой Windows используют ICMP-протокол, при этом операционные системы Linux и маршрутизаторы Cisco — протокол UDP.
Traceroute входит в поставку большинства современных сетевых операционных систем. В системах Microsoft Windows эта программа носит название tracert, а в системах GNU/Linux, Cisco IOS и Mac OS — traceroute.
Для определения промежуточных маршрутизаторов traceroute отправляет целевому узлу серию ICMP-пакетов (по умолчанию 3 пакета), с каждым шагом увеличивая значение поля TTL («время жизни») на 1. Это поле обычно указывает максимальное количество маршрутизаторов, которое может быть пройдено пакетом. Первая серия пакетов отправляется с TTL, равным 1, и поэтому первый же маршрутизатор возвращает обратно ICMP-сообщение «time exceeded in transit», указывающее на невозможность доставки данных. Traceroute фиксирует адрес маршрутизатора, а также время между отправкой пакета и получением ответа (эти сведения выводятся на монитор компьютера). Затем traceroute повторяет отправку серии пакетов, но уже с TTL, равным 2, что заставляет первый маршрутизатор уменьшить TTL пакетов на единицу и направить их ко второму маршрутизатору. Второй маршрутизатор, получив пакеты с TTL=1, так же возвращает «time exceeded in transit».
Процесс повторяется до тех пор, пока пакет не достигнет целевого узла. При получении ответа от этого узла процесс трассировки считается завершённым.
БИЛЕТ