Відмінності між версіями «IGMP»

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
м
Рядок 1: Рядок 1:
Міжмережевий протокол керуючих повідомлень '''''ICMP''''' (Internet Control Message Protocol), специфікований у RFC 792, відіграє роль транспортного протоколу для керуючої і діагностичної інформації, який обмінюються між собою IP-, TCP- або UDP-модулі потай від додатків. Протокол ICMP підтримується в обов'язковому порядку кожним IP-модулем. Його транспортна адреса в IP-заголовку дорівнює 1.
 
 
 
<center>'''Заголовок ICMP-пакета'''</center>
 
Оскільки протокол ICMP використовується для транспортування досить різної інформації, то фіксується лише загальна структура заголовка ICMP-пакета, що має формат, показаний на малюнку нижче:
 
        0        7          15                      31
 
        +-----------+-----------+-----------------------+
 
        |    Тип    |    Код    |  Контрольна сума  |
 
        +-----------+-----------+-----------------------+
 
        |                    Різне                    |
 
        +-------------------------------------------------+
 
        :                  Тіло пакета:                :
 
        : IP-заголовок і наступні за ним 8 байт даних :
 
        :                      або                      :
 
        :                тестові дані                :
 
        +--------------------------------------------------+
 
 
''Тип''  однобайтове поле, що містить ідентифікатор типу ICMP-пакета. Можливі значення цього поля приведені в таблиці.
 
    ---------------+---------------------------
 
    Поле "Тип" | Призначення
 
    ---------------+----------------------------
 
        0        Відповідь на запит луни (эхо)
 
        3        Адресат недоступний
 
        4        Придушення джерела
 
        5        Перенаправлення
 
        8        Запит луни
 
      11        Вичерпаний час життя
 
      12        Помилка в параметрі
 
      13        Запит тимчасової мітки
 
      14        Відповідь на запит тимчасової мітки
 
    --------------+------------------------------
 
 
''Код'': однобайтовое поле, значення якого конкретизує призначення ICMP-пакета визначеного типу.
 
 
''Контрольна сума'': 16-бітове поле, що містить Internet-контрольну суму, підраховану для всього ICMP-пакета цілком.
 
 
''Різне'': чотирибайтовое поле, призначене для збереження різноманітної інформації, специфічної для ICMP-пакетів визначеного типу (наприклад, номера в TCP-послідовності, IP-адреси і т.п.).
 
 
''Тіло пакета'': тут утримується заголовок IP-сегмента, який є породженням даного ICMP-пакета, і перші 8 байт дані тіла цього IP-сегмента. Якщо ICMP-пакет є результат прояву аномалії в TCP- або UDP-взаємодії, то ці 8 байт будуть являти собою перші вісім байтів, відповідно, TCP- або UDP-заголовка, що дає можливість визначити, зокрема, номери портів (а, отже, і їхні прикладні програми, що використовують,).
 
Для ICMP-пакетів деяких типів це може містити не початок IP-сегмента, а тестові дані.
 
 
''Джерелами й оброблювачами'' ICMP-пакетів могуть бути як IP-модулі, так і TCP- і UDP-модулі (але ніколи прикладні програми).
 
 
Проблеми в доставці й обробці ICMP-пакетів ніколи не приводять до породження нових ICMP-пакетів, що повідомляють про ці проблеми. Зроблено це з метою уникнути можливих нескінченних циклів генерації ICMP-пакетів у мережі.
 
 
<center>'''''Типи ICMP-пакетів'''''</center>
 
Тут розглядаються 6 типів ICMP-пакетів, реалізованих у всіх клонах і версіях ОС UNIX.
 
 
'''''Адресат недоступний'''''
 
ICMP-пакет цього типу генерується в наступних випадках:
 
- мережа, вузол мережі, протокол або порт є недоступними;
 
- у ході просування по мережі IP-сегмента потрібна була його фрагментація, однак у заголовку сегмента встановлений прапор DF, що забороняє робити це;
 
- маршрут, що пропонується, зазначений у поле додаткових даних IP-сегмента, виявився недійсним (неіснуючим або неактивним).
 
 
'''''Придушення джерела'''''
 
У ситуаціях, коли деякий вузол (як правило, шлюз) не має досить місця у своїх буферах для розміщення даних, що інтенсивно надходять до нього, він може послати вузлам-джерелам ICMP-пакет даного типу (source quench). Вузол-джерело у відповідь на таке повідомлення зобов'язаний зменшити темп передачі даних.
 
 
У ранніх UNIX-реалізаціях протоколів TCP/IP ICMP-пакети цього типу ігнорувалися. У TCP-реалізаціях, що підтримують алгоритм повільного старту, у відповідь на це повідомлення зменшується розмір "вікна перевантаженості". UDP-модулі ігнорують це повідомлення, інформуючи при цьому прикладну програму, що обслуговується, про вимогу приймача зменшити інтенсивність і/або розмір дэйтаграмм.
 
 
'''''Перенапрямок'''''
 
ICMP-пакет цього типу посилається джерелу даних, коли вузол-шлюз виявляє, що джерело може направляти свої дані безпосередньо до наступного шлюзу маршруту. Такий ICMP-пакет містить у собі IP-адреса цього шлюзу. Ця IP-адреса повинна бути включена в таблицю маршрутизації на вузлі-джерелі даних.
 
 
'''''Луна (Эхо)'''''
 
Для реалізації луни IP-модуль на вузлі A відправляє вузлові B ICMP-пакет типу "запит луни", що містить у своєму тілі замість IP-заголовка тестові дані довільної довжини. Вузол B, одержавши такий запит, повертає вузлу A ICMP-пакет типу "відповідь на запит луни", що містить ті ж дані, що й у запиті. Луни-посилки використовуються для перевірки досяжності вилучених вузлів мережі і виміри часу проходження даних.
 
 
'''''Вичерпано час життя'''''
 
ICMP-пакет даного типу посилається джерелу IP-сегмента, що повинний бути скинутий по одній із двох причин:
 
1) вичерпаний час життя IP-сегмента;
 
2) вичерпаний припустимий час на зборку фрагментированного IP-сегмента.
 
 
'''''Невірний параметр'''''
 
За допомогою ICMP-пакета даного типу джерело IP-сегмента інформується про те, що даний сегмент скинутий унаслідок наявності помилки в якому-небудь з полів його заголовка
 
  
  
 
[[category:Комп'ютерні мережі]]
 
[[category:Комп'ютерні мережі]]

Версія за 22:57, 2 грудня 2008