Privacy Policy Cookie Policy Terms and Conditions ICMP — Википедия

ICMP

Материал из Википедии — свободной энциклопедии

Текст удалён из статьи из-за подозрения в нарушении авторских прав

Текст, ранее находившийся на этой странице, заподозрен в нарушении авторских прав на текст из следующего источника:

http://www.unix.org.ua/ip/glava_7.htm

Если вы хотите переписать статью, делайте это здесь: ICMP/Temp.

Эта страница внесена в категорию Википедия:Возможное нарушение авторских прав.


Вниманию участника, разместившего эту статью

Не редактируйте её сейчас, даже если вы собираетесь её переписать (следуйте указаниям ниже).

Если владелец авторских прав на указанный выше материал разрешает использовать его на условиях GNU FDL, или если правообладателем являетесь вы, пожалуйста, сообщите об этом на странице обсуждения этой статьи.

Если же разрешения на использование этого материала нет, то просим вас:

  • либо написать хотя бы хорошую болванку статьи на этой подстранице,
  • либо оставить всё как есть, и тогда статья будет удалена.

Не следует копировать нарушающий авторские права текст на указанную подстраницу и редактировать его: если факт нарушения авторских прав подтвердится, статья будет удалена вместе с подстраницей. Если вы взялись за написание новой статьи, не забудьте сообщить об этом на странице обсуждения.

В случае, если новый текст написан не будет, эта статья будет удалена через неделю после появления настоящего предупреждения.

Исходный (возможно, нарушающий копирайт) текст этой статьи можно найти в истории изменений.

Обратите внимание, что размещение в Википедии материалов, автор которых не дал явного разрешение на их использование в соответствии с лицензией GNU FDL, может являться нарушением законов об авторском праве. Участники Википедии, размещающие такие тексты, могут быть временно лишены права редактировать статьи.

Несмотря ни на что, мы всегда рады вашим оригинальным статьям.

Спасибо.


Основные протоколы TCP/IP


Прикладной уровень 
HTTP, SMTP, FTP, TFTP, DHCP, SSH, IRC, SNMP, DNS,
IMAP, NNTP, SIP, Telnet, BitTorrent, XDR, rlogin
Транспортный уровень 
TCP, UDP, SCTP, DCCP, RTP, RUDP
Сетевой уровень 
IPv4, IPv6, ARP, RARP, ICMP, IGMP
Канальный уровень 
Ethernet, 802.11 WiFi, Token ring, FDDI, PPP,
SLIP, ATM, DTM, Frame Relay, SMDS
Физический уровень 
RS-232, EIA-422, RS-449, EIA-485

ICMP (англ. Internet Control Message Protocol — протокол управляющих сообщений интернета) — сетевой протокол для передачи команд и сообщений об ошибках, выполняет диагностические функции и сообщает об ошибках или сбоях в сетях на основе протокола IP.

В логической сетевой модели OSI ICMP расположен на сетевом уровне.ICMP определён в RFC 792.

Каждое сообщение протокола ICMP передается по сети внутри пакета IP. Пакеты IP с сообщениями ICMP маршрутизируются точно так же, как и любые другие пакеты, без приоритетов, поэтому они также могут теряться. Кроме того, в загруженной сети они могут вызывать дополнительную загрузку маршрутизаторов.

  +-----------+--------------+
  |заголовокIP|сообщение ICMP|
  +-----------+--------------+
  | 20 байт   |              |
  +-----------+--------------+

Сообщение об ошибке ICMP никогда не генерируется в ответ на:

  • 1. ICMP сообщение об ошибке. (ICMP сообщение об ошибке, однако, может быть сгенерировано в ответ на ICMP запрос.)
  • 2. Датаграмму, направляющуюся на широковещательный IP адрес или групповой адрес IP.
  • 3. Датаграмму, которая посылается широковещательным запросом на канальном уровне.
  • 4. Фрагмент, который не является первым.
  • 5. Датаграмму, адрес источника которой не указывает на конкретный хост. Это означает, что адрес источника не может быть нулевым, loopback адресом, широковещательным или групповым адресом.

Содержание

[править] Формат сообщений протокола ICMP

Существует несколько типов сообщений ICMP. Каждый тип сообщения имеет свой формат, при этом все они начинаются с общих трех полей: 8-битного целого числа, обозначающего тип сообщения (type), 8-битного поля кода (code), который конкретизирует назначение сообщения, и 16-битного поля контрольной суммы (checksum). Кроме того, сообщение ICMP всегда содержит заголовок и первые 64 бита данных пакета IP, который вызвал ошибку. Это делается для того, чтобы узел-отправитель смог более точно проанализировать причину ошибки, так как все протоколы прикладного уровня стека TCP/IP содержат наиболее важную информацию для анализа в первых 64 битах своих сообщений.

   +----------+----------+-------------------------+
   |8 бит(тип)|8 бит(код)|16 бит(контрольная сумма)|
   +----------+----------+-------------------------+
   |        содержимое зависит от типа и кода      |
   +-----------------------------------------------+

[править] Типы сообщений ICMP

Поле типа может иметь следующие значения:

  • 0. Эхо-ответ (Echo Replay)
  • 3. Узел назначения недостижим (Destination Unreachable)
  • 4. Подавление источника (Source Quench)
  • 5. Перенаправление маршрута (Redirect)
  • 8. Эхо-запрос (Echo Request)
  • 11. Истечение времени датаграммы (Time Exceeded for a Datagram)
  • 12. Проблема с параметром пакета (Parameter Problem on a Datagram)
  • 13. Запрос отметки времени (Timestamp Request)
  • 14. Ответ отметки времени (Timestamp Replay)
  • 17. Запрос маски адреса (Address Mask Request)
  • 18. Ответ маски адреса (Address Mask Replay)

[править] Эхо-сообщения(типы 0 и 8)

Протокол ICMP предоставляет сетевым администраторам средства для тестирования достижимости узлов сети. Эти средства представляют собой очень простой эхо-протокол, включающий обмен двумя типами сообщений: эхо-запрос и эхо-ответ. Компьютер или маршрутизатор посылают по сети эхо-запрос, в котором указывают IP-адрес узла, достижимость которого нужно проверить. Узел, который получает эхо-запрос, формирует и отправляет эхо-ответ и возвращает сообщение узлу - отправителю запроса. В запросе могут содержаться некоторые данные, которые должны быть возвращены в ответе. Так как эхо-запрос и эхо-ответ передаются по сети внутри IP-пакетов, то их успешная доставка означает нормальное функционирование всей транспортной системы сети.

Известная утилита ping использует ICMP для выяснения доступности удалённого узла.Эта утилита обычно посылает серию эхо-запросов к тестируемому узлу и предоставляет пользователю статистику об утерянных эхо-ответах и среднем времени реакции сети на запросы. Ещё одна утилита traceroute использует данный протокол для выяснения количества и IP-адресов маршрутизаторов между узлом-источником и узлом-получателем. Код всегда 0.

[править] Сообщения о недостижимости узла назначения(тип 3)

Когда маршрутизатор не может передать или доставить IP-пакет, он отсылает узлу, отправившему этот пакет, сообщение "Узел назначения недостижим" (тип сообщения - 3). Это сообщение содержит в поле кода значение, уточняющее причину, по которой пакет не был доставлен. Причина кодируется следующим образом:

  • 0. Сеть недоступна(network unreachable)
  • 1. Узел недоступен(host unreachable)
  • 2. Протокол недоступен(protocol unreachable)
  • 3. Порт недоступен(port unreachable)
  • 4. Необходима фрагментация, однако установлен бит "не фрагментировать"(fragmentation needed but dont-fragment bit(DF) set)
  • 5. Не работает маршрутизация от источника(source route failed)
  • 6. Неизвестна сеть назначения(destination network unknown)
  • 7. Неизвестен хост назначения(destination host unknown)
  • 8. Хост источник изолирован(source host isolated)
  • 9. Сеть назначения закрыта администратором(destination network administrativrly prohibited)
  • 10. Хост назначения закрыт администратором(destination host administrativrly prohibited)
  • 11. Сеть недоступна для TOS(network unreachable for TOS)
  • 12. Хост недоступен для TOS(host unreachable for TOS)
  • 13. Связь административно закрыта путем фильтрации(communication administratively prohibited by filtering)
  • 14. Нарушено старшинство для хоста(host precedence violation)
  • 15. Старшинство разъединено(precedence cutoff in effect)

Маршрутизатор, обнаруживший по какой-либо причине, что он не может передать IP-пакет далее по сети, должен отправить ICMP-сообщение узлу-источнику, и только потом отбросить пакет. Кроме причины ошибки, ICMP-сообщение включает также заголовок недоставленного пакета и его первые 64 бита поля данных.

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

Недостижимость протокола и порта означают отсутствие реализации какого-либо протокола прикладного уровня в узле назначения или же отсутствие открытого порта протоколов UDP или TCP в узле назначения.

Ошибка фрагментации возникает тогда, когда отправитель послал в сеть пакет с признаком DF, запрещающим фрагментацию, а маршрутизатор столкнулся с необходимостью передачи этого пакета в сеть со значением MTU меньшим, чем размер пакета.

[править] Сообщение о подавлении источника(тип 4)

Шлюз может ликвидировать Internet датаграммы, если у него нет места в буфере для постановки этих датаграмм в очередь на отправление в очередную сеть по маршруту следования к адресату.

Если шлюз ликвидирует датаграмму, то он должен послать сообщение для приостановки хост-компьютеру в Internet системе, отправившему данную датаграмму. Сообщение о приостановке может послать также сам адресат, если датаграммы приходят слишком быстро, чтобы успеть их обработать. Сообщение о приостановке является за просом для хост-компьютера уменьшить скорость посылки данных на этот конкретный адрес. Шлюз может посылать сообщение для при остановки отправителя в каждом случае ликвидации. При получении такого сообщения хост-компьютер, отправивший данные, должен уменьшить скорость посылки данных по этому адресу до тех пор, пока не перестанут приходить запросы на приостановку с данного шлюза. После этого хост-компьютер, отправляющий данные, может постепенно увеличивать скорость посылки данных по этому адресу, пока вновь не станут приходить сообщения о приостановке.

Шлюз или хост-компьютер может посылать сообщение о приостановке еще до достижения предельной пропускной способности, и не ждать, пока этот предел будет пройден. Это означает, что датаграмма с данными, вызвавшая появление сообщения о приостановке, все же может достичь своего адресата Код всегда 0.

[править] Перенаправление маршрута(тип 5)

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

Для корректировки поведения компьютеров маршрутизатор может использовать сообщение протокола ICMP, называемое "Перенаправление маршрута" (Redirect).

Это сообщение посылается в том случае, когда маршрутизатор видит, что компьютер отправляет пакет некоторой сети назначения нерациональным образом, то есть не тому маршрутизатору локальной сети, от которого начинается более короткий маршрут к сети назначения.

Механизм перенаправления протокола ICMP позволяет компьютерам содержать в конфигурационном файле только IP-адреса его локальных маршрутизаторов. С помощью сообщений о перенаправлении маршрутизаторы будут сообщать компьютеру всю необходимую ему информацию о том, какому маршрутизатору следует отправлять пакеты для той или иной сети назначения. То есть маршрутизаторы передадут компьютеру нужную ему часть их таблиц маршрутизации.

В сообщении "Перенаправление маршрута" маршрутизатор помещает IP-адрес маршрутизатора, которым нужно пользоваться в дальнейшем, и заголовок исходного пакета с первыми 64 битами его поля данных. Из заголовка пакета узел узнает, для какой сети необходимо пользоваться указанным маршрутизатором.

Коды для перенаправления:

  • 0. Перенаправление в сеть(redirect for network)
  • 1. Перенаправление в хост(redirect for host)
  • 2. Перенаправление для типа сервиса и сети(redirect for type-of-service and network)
  • 3. Перенаправление для типа сервиса и хоста(redirect for type-of-service and host)

[править] Сообщение о превышении контрольного времени(тип 11)

Коды:

  • 0. Время жизни стало равным 0 в процессе передачи
  • 1. Время жизни стало равным 0 в процессе повторной сборки

Шлюз может послать сообщение с кодом 0, а хост - с кодом 1. Если фрагмент нулевого размера превысил контрольное время, то сообщение в этом не посылается вовсе.

[править] Сообщение о проблемах с параметром(тип 12)

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

Указатель определяет октет в заголовке исходной датаграммы, где была обнаружена ошибка (этот ошибочный октет может находиться даже посередине опции). Например, 1 указывает на то, что имеется какая-то ошибка в поле типа сервиса, а (если имеются опции) 20 определяет, что имеется ошибка в коде типа для первой опции. Код всегда 0.

[править] Сообщение со штампами времени(типы 13 и 14)

Данные из сообщения (штамп времени) возвращаются вместе с ответом, при этом в них добавляется еще один штамп времени. Штамп времени - это 32 бита, где записано время в миллисекундах, прошедшее после полуночи по единому времени (UT). Штамп времени отправления - это время, которое отправитель фиксировал последний раз перед посылкой сообщения. Штамп времени получения - это время, когда исходное сообщение впервые увидел получатель первоначального сообщения. Штамп времени передачи - это время, которое фиксировал в последний раз компьютер, отправляющий ответное сообщение.

Если нет возможности измерять время в миллисекундах или нельзя определить единое время (UT), то в штамп все же можно занести имеющееся время, снабдив его единицей в старшем бите. Последнее также указывает на запись нестандартного значения в этом поле. Код всегда 0.

 
THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu