Протокол ICMP

Хоча IPv4 не є надійним протоколом, насправді він передбачає повідомлення, які будуть надіслані у разі певних помилок. Ці повідомлення надсилаються за допомогою служби Протоколу Контрольних Інтернет-повідомлень (протокол ICMP ). Ціль цих повідомлень полягає в тому, щоб забезпечити зворотний зв'язок про проблеми, пов'язані з обробкою пакетів IP за певних умов, але не для того, щоб зробити IP надійним. Повідомлення ICMP не є обов'язковими і часто не дозволені з міркувань безпеки.

може

ICMP є протоколом обміну повідомленнями стека TCP/IP. ICMP забезпечує контрольні повідомлення та повідомлення про помилки та використовується утилітами ping та traceroute. Хоча ICMP використовує базову підтримку IP як високорівневий протокол, він фактично є окремим протоколом рівня 3 зі стека TCP/IP.

Типи повідомлень ICMP – і причини, чому вони надсилаються – великі. Ми обговоримо деякі з найпоширеніших повідомлень.

Повідомлення ICMP, які можуть бути надіслані, включають:

  • Підтвердження вузла
  • Недоступне місце призначення або служба
  • Перевищення Ліміту Часу
  • Перенаправлення маршруту
  • Придушення Джерела

Підтвердження вузла

Відлуння ICMP може використовуватися, щоб визначити, чи є вузол робочим. Локальний вузол відправляє Ехо-запит ICMP хосту. Хост, що отримує луна-повідомлення, відповідає Відлунням ICMP, як показано на малюнку. Це використання Ехо-повідомлень ICMP є основою утиліти ping.

Недоступне місце призначення або служба

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

Серед Кодів Недосяжності Місця призначення можна назвати:

0 = недосяжна мережа

1 = недосяжний вузол

2 = недосяжний протокол

3 = недосяжний порт

Кодинедосяжна мережатанедосяжний вузолє відповідями від маршрутизатора, коли той не може передати пакет. Якщо маршрутизатор отримує пакет, для якого у нього немає маршруту, він може відповісти недоступним місцем призначення ICMP з кодом = 0, вказуючи на недосяжну мережу. Якщо маршрутизатор отримує пакет, для якого він має приєднаний маршрут, але не може доставити пакет вузлу в підключеній мережі, маршрутизатор може відповісти Недоступним Місцем призначення ICMP з кодом = 1, вказуючи, що мережа відома, але вузол недосяжний.

Коди 2 і 3 (недосяжний протоколінедосяжний порт) використовуються кінцевим хостом, щоб вказати, що сегмент TCP або дейтаграма UDP, що містилася в пакеті, не могли бути доставлені службі верхнього рівня.

Коли кінцевий хост отримує пакет PDU рівня 4, який повинен бути доставлений недоступній службі, хост може відповісти вузлу-відправнику ICMP повідомленням Недосяжності місця призначення з кодом = 2 або кодом = 3, вказуючи, що служба не доступна. Служба, ймовірно, недоступна, оскільки не запущений відповідний демон, який надає цю службу, або тому що безпека вузла не дозволяє доступ до служби.

Перевищений час

ICMP Повідомлення Перевищеного Часу використовується маршрутизатором, щоб вказати, що пакет неможе бути переданий, оскільки пакет TTL закінчився. Якщо маршрутизатор отримує пакет і зменшує поле TTL у пакеті до нуля, він відкидає пакет. Маршрутизатор може також надіслати ICMP Повідомлення Перевищеного Часу вихідному вузлу, щоб повідомити йому причину, з якої пакет було відкинуто.

Перенаправлення маршруту

Маршрутизатор може використовувати ICMP повідомлення Перенаправлення, щоб повідомити вузли мережі, що для певного місця призначення доступний найкращий маршрут. Це повідомлення може використовуватися тільки тоді, коли вихідний вузол знаходиться в тій же фізичній мережі, що і обидва шлюзи. Якщо маршрутизатор отримує пакет, для якого у нього є маршрут і для якого наступна транзитна ділянка приєднана до того самого інтерфейсу, з якого пакет прибув, маршрутизатор може відправити повідомлення Перенаправлення ICMP вихідному вузлу. Це повідомлення повідомить вихідний вузол про наступну транзитну ділянку, яка містилася в маршруті таблиці маршрутизації.

Придушення Джерела

ICMP Повідомлення Придушення Джерела може використовуватися, щоб повідомити джерело тимчасово припинити надсилання пакетів. Якщо у маршрутизатора не буде достатньої кількості буферного простору, щоб отримувати вхідні пакети, маршрутизатор відкине пакети. Якщо маршрутизатору доводиться це робити, він може також передати повідомлення ICMP Придушення Джерела вузлам-відправникам для кожного повідомлення, яке він відкидає.

Кінцевий хост також може передати повідомлення придушення джерела, якщо дейтаграми надходять швидко, щоб бути обробленими.

Коли хост отримує ICMP повідомлення Придушення Джерела, він повідомляє про це Транспортний рівень. Далі хост-відправник може використовувати механізми керування потоком TCP,щоб скоригувати передачу.