ICMP: различия между версиями

[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Исправление ошибки построения предложения
Строка 15:
 
== Технические подробности ==
Протокол ICMP описал в RFC 792 от 1981 года Jon Postel (с дополнениями в RFC 950). ICMP является [[RFC#Содержимое RFC|стандартом Интернета]] (входит в стандарт STD 5 вместе с [[IP]]). Хотя формально протокол использует [[IP]] (ICMP-пакеты [[Инкапсуляция (в сетевых протоколах)|инкапсулируются]] в [[IP]] пакеты), он является неотъемлемой частью [[IP]] и обязателен при реализации [[стек протоколов TCP/IP|стека TCP/IP]]. Текущая версия ICMP для [[IPv4]] называется ICMPv4. В [[IPv6]] существует аналогичный протокол [[ICMPv6]].
 
ICMP-сообщение строится из [[IP]]-пакетов, сгенерировавших ICMP-ответ. [[IP]] инкапсулирует соответствующее ICMP-сообщение с новым заголовком [[IP]] (чтобы отправить ICMP-сообщение обратно отправителю) и передает полученные пакеты дальше.
 
Например, каждая машина (такая, как [[маршрутизатор]]), которая перенаправляет [[IP]]-пакеты, уменьшает [[Time to live]] (TTL) поля заголовка [[IP]] на единицу, если [[Time to live|TTL]] достигает 0, ICMP-сообщение о превышении TTL отправляется на источник пакета.
 
ICMP основан на протоколе [[IP]]. Каждое ICMP-сообщение инкапсулируется непосредственно в пределах одного [[IP]]-пакета, и, таким образом, как и [[UDP]] и в отличие от [[TCP]], ICMP является т. н. «ненадежным» (не контролирующим доставку и её правильность). В отличие от UDP, где реализация надёжности возложена на ПО прикладного уровня, ICMP (в силу специфики применения) обычно не нуждается в реализации надёжной доставки. Его цели отличны от целей транспортных протоколов, таких как [[TCP]] и [[UDP]]: он, как правило, не используется для передачи и приёма данных между конечными системами. ICMP не используется непосредственно в приложениях пользователей сети (исключение составляют инструменты [[Ping]] и [[Traceroute]]). Тот же Ping, например, служит обычно как раз для проверки потерь IP-пакетов на маршруте.
 
== Использование ICMP-сообщений ==
Строка 28:
ICMP-сообщения (тип 3) генерируются [[маршрутизатор]]ом при отсутствии маршрута к адресату.
 
Утилита [[Ping]], служащая для проверки возможности доставки [[IP]]-пакетов, использует ICMP-сообщения с типом 8 (эхо-запрос) и 0 (эхо-ответ).
 
Утилита [[Traceroute]], отображающая путь следования [[IP]]-пакетов, использует ICMP-сообщения с типом 11.
 
ICMP-сообщения с типом 5 используются [[маршрутизатор]]амимаршрутизаторами для обновления записей в [[маршрутизатор#Таблица маршрутизации|таблице маршрутизации]] отправителя.
 
ICMP-сообщения с типом 4 используются получателем (или [[маршрутизатор]]оммаршрутизатором) для управления скоростью отправки сообщений отправителем.
 
== Формат пакета ICMP ==