Протокол за интернет контролни съобщения ICMP (Internet Control Message Protocol) е механизъм за докладване на грешки, важен подпротокол в TCP/IP протоколния клъстер, обикновено използван от протоколи на IP или по-висок слой (TCP или UDP), принадлежи към протокола на мрежовия слой, основно използван за предаване на контролни съобщения между IP хостове и рутери, използва се за докладване дали хостът е достъпен, дали маршрутът е наличен и др. Въпреки че тези контролни съобщения не предават потребителски данни, те играят ключова роля при събирането на различна мрежова информация, диагностиката и отстраняването на различни мрежови грешки и предаването на потребителски данни.
Защо ти трябва ICMP?
В процеса на предаване на данни IP предоставя услуга с най-доброто усилие, което означава да се направи всичко възможно да се изпратят пакети от данни до адреса на дестинацията. Не проверява дали дестинационният хост получава пакета или не и не може да извършва контрол на потока и грешки. Следователно различни грешки са неизбежни по време на процеса на предаване на пакети. ICMP беше създаден, за да препраща IP пакети по-ефективно и да увеличи шансовете за успешна доставка на пакети. При ICMP, когато възникне проблем с предаването на пакети в мрежата, хостът или устройството докладва грешката на протокола на горния слой и предоставя доклад за необичайната ситуация, за да може протоколът на горния слой да прецени дали комуникацията е коректна чрез собствена програма за контрол на грешки за контрол на трафика и грешките, за да гарантира качеството на услугата.
Какви са сценариите за приложение на ICMP?
Докладване на грешки
Съобщенията за грешки в ICMP съобщават за мрежови грешки като недостъпна дестинация, таймаути или проблеми с сегментацията. Тези съобщения са особено важни за User Datagram Protocol (UDP) с модел на комуникация без връзка.
UDP не осигурява надеждно и подредено предаване на пакети. При изпращане на UDP пакети пакетите могат да бъдат загубени или да се повредат, като например грешки в контролната сума по време на предаване. Ако това се случи, получателят изпраща ICMP съобщение за доклад за грешка обратно на подателя, за да уведоми проблема.
Диагноза
Можеш да използваш ICMP за мрежова диагностика. Най-често се използва за ping и traceroute команди.
Командата ping тества достъпността на мрежовите устройства чрез изпращане на ICMP echo заявки към целевото устройство. Ако устройството е достъпно, се връща ICMP echo отговор. Той надеждно проверява латентността на мрежата и гарантира наличността на устройствата.
Командата traceroute проследява пътя, по който пакетът е минал от източника му до дестинацията. За да се постигне това, командата изпраща echo заявката и echo отговорното съобщение до желаната дестинация.
Echo заявките съдържат стойност за време на живот (TTL), която се намалява с 1 за всеки рутер, през който преминава пакетът. Когато пакет достигне рутер с нулев TTL, рутерът изпраща ICMP съобщение към изходния край.
Съобщението съдържа информация за маршрута, който пакетът използва. Traceroute показва точния път на пакета и може да ви предостави подробности за производителността на вашата мрежа.
Киберсигурност
Можете да използвате ICMP, за да откривате неоторизиран мрежов трафик и да позволявате само легитимен трафик да преминава през мрежата. Защитните стени използват ICMP, за да позволят или блокират определени видове трафик. Мрежовите администратори също използват ICMP инструменти за мониторинг, за да проследяват статуса и свързаността на мрежовите устройства и да откриват неизвестни устройства.
Можете също да го използвате, за да забелязвате необичайни трафик модели, които могат да показват неразрешена дейност.
Формат на съобщението на ICMP протокола
Форматът на ICMP пакета е показан на фигурата, като всяко ICMP съобщение съдържа пълния IP хедър на пакета, от който е произходило ICMP съобщението, а ICMP пакетът е капсулиран вътре в IP пакета като част от IP пакета. Трите фиксирани полета, включени в ICMP заглавието, са основната основа за изходното устройство да определи типа на възникващата грешка.
Полето Type показва типа на ICMP съобщението; Полето Код представлява подтип на сегмента от типа на ICMP съобщение; Полето Checksum представлява контролната сума на ICMP пакети.
Различните видове ICMP пакети се делят на два типа: пакети с грешки и пакети за заявки, както е показано в таблицата за класификация на ICMP пакети.
Класификация на ICMP пакети
Тип | | | | 0-Echo отговор | 0 | Еко отговаря на съобщението | Запитване | 3- Целта е недостижима | 0 | Целевата мрежа не може да достигне пакета | Грешка | 1 | Целевият хост не може да достигне пакета | Грешка | 2 | Целевото споразумение не може да достигне пакета | Грешка | 3 | Дестинационният порт не може да достигне пакета | Грешка | 4 | Сегментационни и DF флагови съобщения | Грешка | 5 | Неуспешни пакети с изходен маршрут | Грешка | 6 | Неизвестни мрежови пакети | Грешка | 7 | Неизвестни дестинационни хост пакети | Грешка | 8 | Изходният хост изолира пакети | Грешка | 9 | Мрежови пакети, до които е забранено достъпване | Грешка | 10 | Хост съобщения, до които е забранено достъпване | Грешка | 11 | Пакетите не са достъпни за конкретна TOS мрежа | Грешка | 12 | Пакетите не са достъпни до конкретен TOS хост | Грешка | 13 | Пакетите се потискат поради филтриране на мрежовия трафик | Грешка | 14 | Съобщение за прекрачване на правомощия на хоста | Грешка | 15 | Ефективно съобщение за приоритетно прекратяване | Грешка | 5- Пренасочване | 0 | Пренасочване на мрежови пакети | Грешка | 1 | Пренасочване на хост пакети | Грешка | 2 | TOS-базирани мрежови пакети за пренасочване | Грешка | 3 | TOS-базирани пакети за пренасочване на хост | Грешка | 8- Заявка за ехо | 0 | Echo заявява пакети | Запитване | 9- Съобщение за рутер | 0 | Съобщения за обявяване на маршрути | Запитване | 10 - Заявка за рутер | 0 | Откривай/избирай/заявявай пакети за рутери | Запитване | 11 - ICMP тайм-аут | 0 | Съобщение за TTL таймаут | Грешка | 1 | Споделяне и реорганизация на тайм-аут пакети | Грешка | 12- Проблеми с параметрите | 0 | Първото съобщение за грешка на параметъра в IP доклада | Грешка | 1 | Пропускат необходимите опционални пакети | Грешка | 2 | Неподдържани пакети с дължина | Грешка | 13- Заявка за времеви печат | 0 | Пакети за заявки с времеви печати | Запитване | Отговор с 14 времеви печата | 0 | Отговорни пакети с времеви печат | Запитване | 15- Искане за информация | 0 | Пакети за заявка за информация | Запитване | 16- Информационен отговор | 0 | Пакети за отговор на съобщения | Запитване |
Разлика между ICMP и TCP
TCP е протокол, ориентиран към връзката, за надеждно предаване на данни, проверено с грешки. Той се използва широко за сърфиране, имейл, отдалечен вход и приложения за прехвърляне на файлове. TCP изисква ръкостискане, серия от съобщения, които установяват доверие и автентикация между подателя и получателя. TCP гарантира доставката на съобщението.
За разлика от това, протоколът за съобщения за управление на интернет (ICMP) е протокол без връзка. Не гарантира доставка на съобщение. Тъй като ICMP се използва само за докладване на грешки, ICMP съобщенията също са по-малки от TCP пакетите.
ICMP и TCP се използват заедно за определяне на причината за повреда на предаването на TCP. |