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

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

Поточна версія на 12:28, 7 квітня 2009

Кінцеві користувачі, які хочуть одержувати пакети багатоадресної розсилки, повинні мати можливість повідомити найближчим маршрутизаторам про своє бажання стати членом групи багатоадресної розсилки й одержувати пакети, призначені цій групі. Міжмережевий протокол керування групами - Internet Group Management Protocol (IGMP) - використовується для підтримки членства в групі багатоадресної розсилки. IGMP також використовується для узгодження роботи декількох маршрутизаторів багатоадресної розсилки, що виробляється шляхом вибору одного маршрутизатора в якості "ведучого". Цей маршрутизатор відслідковує членство в групах багатоадресної розсилки, що мають активних членів у мережі. IGMP використовується для визначення, чи повинен маршрутизатор передавати в підключені до нього підмережі прийняті пакети чи ні. Маршрутизатор, прийнявши пакет групового розсилання, перевіряє по його джерелу, є чи хоча б один член групи багатоадресної розсилки, що зробив запит на прийом цих пакетів. Якщо так, то пакет просувається. Якщо не існує жодного члена групи багатоадресної розсилки, то пакет відкидається.

IGMP версій 1 і 2 Користувачі, які бажають одержувати пакети групового розсилання, повинні мати можливість приєднуватися до груп багатоадресної розсилки і залишати їх. Це досягається використанням протоколу IGMP.

Нижче приведені коди типів протоколу IGMP:

Тип Значення

+---------------------------------------------------------------------------+

0x11 Запит на членство (якщо групова адреса дорівнює 0.0.0.0)

0x11 Запит на членство у визначеній групі (якщо є присутнім групова адреса)

0x16 Відповідь про приналежність групі (версія 2)

0x17 Залишити групу (версія 2)

0x12 Відповідь про приналежність групі (версія 1)

+---------------------------------------------------------------------------+

Маршрутизатори використовують IGMP для керування членством у групах , багатоадресного розсилання:

- Користувачі посилають IGMP-відповіді для приєднання до групи. - IGMP версії 1 не має явного повідомлення "залишити групу". Члену групи призначається таймер, і якщо значення таймера минає до одержання відповіді, то користувач видаляється з групи. - IGMP версії 2 надає окреме повідомлення "залишити групу". Користувач посилає дане повідомлення маршрутизату багатоадресної розсилки, коли хоче залишити групу (у IGMP версії 2). - Маршрутизатор періодично посилає IGMP-запити (по груповій адресі усіх вузлів підмережі: 224.0.0.1), щоб довідатися, чи існують члени яких-небудь груп у його підмережах. Якщо від конкретної групи не приходить відповідь, то маршрутизатор вважає, що в мережі немає членів даної групи, і не передає її трафик.

Поле TTL повідомлення-запиту встановлюється в 1, тому запити не передаються в інші підмережі. IGMP версії 2 пропонує кілька додатків до IGMP версії 1, таких як вибір єдиного "ведучого" маршрутизатора для кожної мережі, окреме повідомлення "залишити групу" і запити, специфічні для конкретної групи багатоадресної розсилки.

У якості "ведучого" вибирається маршрутизатор з найменшою IP-адресою. Окреме повідомлення "залишити групу" додано для зменшення часу чекання і для того, щоб маршрутизатор міг опитувати конкретні групи багатоадресної розсилки й одержувати відповіді користувачів про приналежність цій групі.


TCP/IP