<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://camokathomelab.servebeer.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=IGMP</id>
	<title>IGMP - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://camokathomelab.servebeer.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=IGMP"/>
	<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php?title=IGMP&amp;action=history"/>
	<updated>2026-07-16T11:23:27Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://camokathomelab.servebeer.com/mediawiki/index.php?title=IGMP&amp;diff=53434&amp;oldid=prev</id>
		<title>imported&gt;Alex NB OT: замена имён и значений устаревшего неподдерживаемого InternetArchiveBot формата параметров доступности ссылок (1)</title>
		<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php?title=IGMP&amp;diff=53434&amp;oldid=prev"/>
		<updated>2025-07-16T10:14:24Z</updated>

		<summary type="html">&lt;p&gt;замена имён и значений устаревшего неподдерживаемого InternetArchiveBot формата параметров доступности ссылок (1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Карточка протокола&lt;br /&gt;
  |Аббр = IGMP&lt;br /&gt;
  |Название = Internet Group Management Protocol&lt;br /&gt;
  |Уровень = Сетевой&lt;br /&gt;
  |Семейство = [[стек протоколов TCP/IP|TCP/IP]]&lt;br /&gt;
  |Создан = &lt;br /&gt;
  |Порт = &lt;br /&gt;
  |Назначение = Управление групповой маршрутизацией&lt;br /&gt;
  |Спецификация = RFC 3376&lt;br /&gt;
  |Клиенты = &amp;lt;!-- реализации стека TCP/IP в [[Microsoft Windows]], [[Linux]] и [[BSD]] --&amp;gt;&lt;br /&gt;
  |Серверы = &amp;lt;!-- реализации стека TCP/IP в [[Microsoft Windows|Windows]], [[Linux]] и [[BSD]] --&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;IGMP&amp;#039;&amp;#039;&amp;#039; ({{lang-en|Internet Group Management Protocol}} — протокол управления группами Интернета) — [[сетевой протокол|протокол]] управления [[multicast|групповой (multicast) передачей]] данных в сетях, основанных на [[Internet Protocol|протоколе IP]]. IGMP используется [[маршрутизатор]]ами и [[Узел сети|IP-узлами]] для организации сетевых устройств в группы.&lt;br /&gt;
&lt;br /&gt;
Этот протокол является частью спецификации [[multicast|групповой передачи]] пакетов в [[Internet Protocol|IP-сетях]]. IGMP расположен на [[Сетевой уровень|сетевом уровне]]&amp;lt;ref&amp;gt;{{Cite web |url=http://www.networksorcery.com/enp/protocol/igmp.htm |title=Network Sorcery — IGMP |access-date=2009-12-21 |archive-date=2006-04-27 |archive-url=https://web.archive.org/web/20060427012433/http://www.networksorcery.com/enp/protocol/igmp.htm |url-status=live }}&amp;lt;/ref&amp;gt;. Он во многом аналогичен [[ICMP]] для [[unicast|одноадресной передачи]]. IGMP может использоваться для поддержки [[Потоковое мультимедиа|потокового видео]] и [[Онлайн-игра|онлайн-игр]], для этих типов приложений он позволяет использовать сетевые ресурсы более эффективно. IGMP уязвим для некоторых атак&amp;lt;ref&amp;gt;Spoofed [http://www.securityfocus.com/bid/5020/info IGMP report denial of service] {{Wayback|url=http://www.securityfocus.com/bid/5020/info |date=20110610224149 }} vulnerability.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[http://support.microsoft.com/default.aspx?scid=kb;en-us;238329&amp;amp;sd=tech Fragmented IGMP packet] {{Wayback|url=http://support.microsoft.com/default.aspx?scid=kb;en-us;238329&amp;amp;sd=tech |date=20050213091318 }} may promote «Denial of Service» attack.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[http://www.securemulticast.org/GSEC/gsec3_ietf53_SecureIGMP1.pdf#search=%22igmp%20attacks%22 IGMP Security Problem Statement and Requirements] {{webarchive|url=https://web.archive.org/web/20061013122139/http://www.securemulticast.org/GSEC/gsec3_ietf53_SecureIGMP1.pdf |date=2006-10-13 }}.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Microsoft Security Bulletin MS06-007: [http://www.microsoft.com/technet/security/Bulletin/MS06-007.mspx Vulnerability in TCP/IP Could Allow Denial of Service (913446)] {{Wayback|url=http://www.microsoft.com/technet/security/Bulletin/MS06-007.mspx |date=20070331055012 }}.&amp;lt;/ref&amp;gt;, и брандмауэры обычно позволяют пользователю отключить этот протокол, если в нем нет необходимости.&lt;br /&gt;
&lt;br /&gt;
IGMP используется только в сетях [[IPv4]], так как в [[IPv6]] групповая передача пакетов реализована через протокол [[Multicast Listener Discovery]].&lt;br /&gt;
&lt;br /&gt;
== Архитектура ==&lt;br /&gt;
Сеть, предоставляющая услуги групповой передачи данных (например видео) с использованием IGMP, может иметь следующую базовую архитектуру:&lt;br /&gt;
&lt;br /&gt;
[[Image:IGMP basic architecture.png|IGMP architecture example]]&lt;br /&gt;
&lt;br /&gt;
IGMP используется клиентским компьютером и соседними [[Сетевой коммутатор|коммутатор]]ами для соединения клиента и локального маршрутизатора, осуществляющего групповую передачу. Далее между локальным и удаленным маршрутизаторами используется протокол [[Protocol Independent Multicast]] (PIM), с его помощью групповой трафик направляется от видеосервера к многочисленным клиентам групповой передачи.&lt;br /&gt;
&lt;br /&gt;
== Стандарты ==&lt;br /&gt;
Согласно [[Request for Comments]] (RFC), документу сообщества [[Internet Engineering Task Force]] (IETF), существует три версии IGMP. IGMPv1 определен в [http://tools.ietf.org/html/rfc1112 RFC 1112], IGMPv2 — в [http://tools.ietf.org/html/rfc2236 RFC 2236] и IGMPv3 — в [http://tools.ietf.org/html/rfc3376 RFC 3376].&lt;br /&gt;
&lt;br /&gt;
Основным улучшением в IGMPv3 относительно IGMPv2 является поддержка фильтрации [[IP-адрес]]ов. С помощью этого механизма узел может сообщить, с каких адресов он хочет получать пакеты, а с каких нет.&lt;br /&gt;
&lt;br /&gt;
== Реализация ==&lt;br /&gt;
Протокол IGMP реализован в виде серверной и клиентской частей, первая из которых выполняется на маршрутизаторе, вторая — в узле сети, получающем групповой трафик. Клиент посылает уведомление о принадлежности к какой-либо группе локальному маршрутизатору, в это время маршрутизатор находится в ожидании уведомлений и периодически рассылает клиентам запросы.&lt;br /&gt;
&lt;br /&gt;
[[операционная система|Операционные системы]] семейств [[BSD]], [[Linux]] и [[Microsoft Windows|Windows]] поддерживают клиентскую часть протокола. В системе Linux IGMPv3 был добавлен в версии ядра 2.5. Для FreeBSD IGMPv3 был добавлен в версии 8.0.&lt;br /&gt;
&lt;br /&gt;
Для реализации серверной части IGMP в Linux используются [[Демон (программа)|демоны]], например, [[mrouted]] может действовать как IGMP маршрутизатор. Существуют также целые программные комплексы (такие, как [[XORP]]), позволяющие превратить обычный компьютер в полнофункциональный маршрутизатор групповой передачи.&lt;br /&gt;
&lt;br /&gt;
В [[OpenBSD]] поддержка IGMP в ядре изначально включает в себя базовую поддержку маршрутизации, а имеющиеся в составе ОС демоны [[mrouted]] и [[Distance Vector Multicast Routing Protocol|dvmrpd]] позволяют решать более сложные задачи (например, туннелирование multicast-трафика).&lt;br /&gt;
&lt;br /&gt;
== Структура пакетов IGMPv3 ==&lt;br /&gt;
Определена стандартом [http://tools.ietf.org/html/rfc3376#section-4  RFC 3376].&lt;br /&gt;
&lt;br /&gt;
=== Запрос принадлежности (Membership Query Message) ===&lt;br /&gt;
Запросы принадлежности рассылаются маршрутизаторами для того, чтобы для каждого узла определить его принадлежность к каким-либо группам (group membership state) и список источников информации, от которых данный узел хочет получать сообщения (reception state). Существует три типа таких запросов:&lt;br /&gt;
* Общие запросы (General Queries) — позволяют получить полную информацию для каждого из узлов. Маршрутизатор периодически рассылает эти запросы всем системам, подключенным к его сети.&lt;br /&gt;
* Запросы с указанием группы (Group-Specific Queries) — используются для определения состояния подписки для заданной группы узлов. Такие запросы рассылаются по соответствующему групповому адресу.&lt;br /&gt;
* Запросы с указанием группы и источника (Group-and-Source-Specific Queries) — позволяет для каждого узла заданной группы определить, какие сообщения из всех, посылаемых заданными источниками, этот узел хочет получать.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
 !Октет||width=&amp;quot;3%&amp;quot; |0||width=&amp;quot;3%&amp;quot; |1||width=&amp;quot;3%&amp;quot; |2||width=&amp;quot;3%&amp;quot; |3||width=&amp;quot;3%&amp;quot; |4||width=&amp;quot;3%&amp;quot; |5||width=&amp;quot;3%&amp;quot; |6||width=&amp;quot;3%&amp;quot; |7||width=&amp;quot;3%&amp;quot; |8||width=&amp;quot;3%&amp;quot; |9||10||11||12||13||14||15||16||17||18||19||20||21||22||23||24||25||26||27||28||29||30||31&lt;br /&gt;
 |-&lt;br /&gt;
 |0—3||colspan=&amp;quot;8&amp;quot; |Type = 0x11|| colspan=&amp;quot;8&amp;quot; |Max Resp Code|| colspan=&amp;quot;16&amp;quot; |Checksum&lt;br /&gt;
 |-&lt;br /&gt;
 |4—7||colspan=&amp;quot;32&amp;quot; |Group Address&lt;br /&gt;
 |-&lt;br /&gt;
 |8—11||colspan=&amp;quot;4&amp;quot; |Resv||colspan=&amp;quot;1&amp;quot; |S||colspan=&amp;quot;3&amp;quot; |QRV||colspan=&amp;quot;8&amp;quot; |QQIC||colspan=&amp;quot;16&amp;quot; |Number of Sources (N)&lt;br /&gt;
 |-&lt;br /&gt;
 |12—15||colspan=&amp;quot;32&amp;quot; |Source Address [1]&lt;br /&gt;
 |-&lt;br /&gt;
 |…||colspan=&amp;quot;32&amp;quot; |…&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;amp;nbsp;||colspan=&amp;quot;32&amp;quot; |Source Address [N]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Код макс. ответа (Max Resp Code)&amp;#039;&amp;#039;&amp;#039; — максимальное время (в 1/10 секунды) ожидания ответа, соответствующего данному запросу. Если значением является число, меньшее 128, оно используется напрямую. Если же значение больше или равно 128, оно интерпретируется как экспонента с мантиссой.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Контрольная сумма (Checksum)&amp;#039;&amp;#039;&amp;#039; — 16-битная контрольная сумма для всего IGMP-сообщения.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Групповой адрес (Group Address)&amp;#039;&amp;#039;&amp;#039; — групповой адрес, используемый в запросах с указанием группы. При общем запросе это поле устанавливается равным нулю.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Resv&amp;#039;&amp;#039;&amp;#039; — поле зарезервировано, его следует обнулять при посылке и игнорировать при получении.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Флаг S (Прекратить серверную обработку, Suppress Router-side Processing)&amp;#039;&amp;#039;&amp;#039; — установка этого флага указывает всем маршрутизаторам, получившим данное сообщение, прекратить обновления по таймеру.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;QRV (Переменная надежности запрашивающего, Querier’s Robustness Variable)&amp;#039;&amp;#039;&amp;#039; — содержит переменную надежности (Robustness Variable), значение которой используется посылающим устройством. Маршрутизаторы должны обновлять их переменные надежности в соответствии с последним полученным запросом, пока это поле ненулевое.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;QQIC (Код интервала запроса, Querier’s Query Interval Code)&amp;#039;&amp;#039;&amp;#039; — значение поля указывает интервал между запросами (Query Interval), используемый запрашивающим. Если значением является число, меньшее 128, оно используется напрямую. Если же значение больше или равно 128, оно интерпретируется как экспонента с мантиссой.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Количество источников (Number of Sources, N)&amp;#039;&amp;#039;&amp;#039; — определяет число адресов источников, присутствующих в этом запросе. Для общих запросов и запросов с указанием группы это значение равно нулю. Для запросов с указанием группы и источника это поле ненулевое, оно ограничено значением [[Maximum transmission unit|MTU]] сети.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Адрес источника [i] (Source Address)&amp;#039;&amp;#039;&amp;#039; — массив индивидуальных (не групповых) IP-адресов источников данных.&lt;br /&gt;
&lt;br /&gt;
=== Отчёт о принадлежности (Membership Report Message) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
 !Октет||width=&amp;quot;3%&amp;quot; |0||width=&amp;quot;3%&amp;quot; |1||width=&amp;quot;3%&amp;quot; |2||width=&amp;quot;3%&amp;quot; |3||width=&amp;quot;3%&amp;quot; |4||width=&amp;quot;3%&amp;quot; |5||width=&amp;quot;3%&amp;quot; |6||width=&amp;quot;3%&amp;quot; |7||width=&amp;quot;3%&amp;quot; |8||width=&amp;quot;3%&amp;quot; |9||10||11||12||13||14||15||16||17||18||19||20||21||22||23||24||25||26||27||28||29||30||31&lt;br /&gt;
 |-&lt;br /&gt;
 |0—3||colspan=&amp;quot;8&amp;quot; |Type = 0x22|| colspan=&amp;quot;8&amp;quot; |Reserved|| colspan=&amp;quot;16&amp;quot; |Checksum&lt;br /&gt;
 |-&lt;br /&gt;
 |4—7||colspan=&amp;quot;16&amp;quot; |Reserved||colspan=&amp;quot;16&amp;quot; |Number of Group Record (M)&lt;br /&gt;
 |-&lt;br /&gt;
 |8—11||colspan=&amp;quot;32&amp;quot; |Group Record [1]&lt;br /&gt;
 |-&lt;br /&gt;
 |…||colspan=&amp;quot;32&amp;quot; |…&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;amp;nbsp;||colspan=&amp;quot;32&amp;quot; |Group Record [M]&lt;br /&gt;
 |}&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Reserved&amp;#039;&amp;#039;&amp;#039; — должно устанавливаться в ноль при передаче и игнорироваться при приёме;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Number of Group Record&amp;#039;&amp;#039;&amp;#039; — количество полей Group Record в сообщении;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Group Record&amp;#039;&amp;#039;&amp;#039; — блок полей, содержащий информацию о членстве отправителя в группе:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
 !width=&amp;quot;3%&amp;quot; |0||width=&amp;quot;3%&amp;quot; |1||width=&amp;quot;3%&amp;quot; |2||width=&amp;quot;3%&amp;quot; |3||width=&amp;quot;3%&amp;quot; |4||width=&amp;quot;3%&amp;quot; |5||width=&amp;quot;3%&amp;quot; |6||width=&amp;quot;3%&amp;quot; |7||width=&amp;quot;3%&amp;quot; |8||width=&amp;quot;3%&amp;quot; |9||10||11||12||13||14||15||16||17||18||19||20||21||22||23||24||25||26||27||28||29||30||31&lt;br /&gt;
 |-&lt;br /&gt;
 |colspan=&amp;quot;8&amp;quot; |Record Type|| colspan=&amp;quot;8&amp;quot; |Aux Data Len|| colspan=&amp;quot;16&amp;quot; |Number of Sources (N)&lt;br /&gt;
 |-&lt;br /&gt;
 |colspan=&amp;quot;32&amp;quot; |Multicast Address&lt;br /&gt;
 |-&lt;br /&gt;
 |colspan=&amp;quot;32&amp;quot; |Source Address [1]&lt;br /&gt;
 |-&lt;br /&gt;
 |colspan=&amp;quot;32&amp;quot; |…&lt;br /&gt;
 |-&lt;br /&gt;
 |colspan=&amp;quot;32&amp;quot; |Source Address [N]&lt;br /&gt;
 |-&lt;br /&gt;
 |colspan=&amp;quot;32&amp;quot; height=&amp;quot;60&amp;quot; |Auxilary Data&lt;br /&gt;
 |}&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Record Type&amp;#039;&amp;#039;&amp;#039; — тип записи:&lt;br /&gt;
:**Текущее состояние — посылается в ответ на запрос, сообщает о текущем режиме фильтрации, относительно указанного группового адреса, принимает значения MODE_IS_INCLUDE и MODE_IS_EXCLUDE;&lt;br /&gt;
:**Изменение режима — посылается при изменении режима фильтрации, принимает значения CHANGE_TO_INCLUDE_MODE и CHANGE_TO_EXCLUDE_MODE;&lt;br /&gt;
:**Изменение списка источников — посылается при изменении списка источников без изменения режима фильтрации:&lt;br /&gt;
:***ALLOW_NEW_SOURCES — в режиме INCLUDE адреса добавляются к списку, в режиме EXCLUDE — удаляются из списка;&lt;br /&gt;
:***BLOCK_OLD_ SOURCES — в режиме EXCLUDE адреса добавляются к списку, в режиме INCLUDE — удаляются из списка.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Aux Data Len&amp;#039;&amp;#039;&amp;#039; — длина дополнительных данных в 32-битных словах.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Number of Sources&amp;#039;&amp;#039;&amp;#039; — количество адресов источников данных;&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Multicast Address&amp;#039;&amp;#039;&amp;#039; — групповой адрес, к которому относится информация в записи;&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Source Address&amp;#039;&amp;#039;&amp;#039; — массив индивидуальных IP-адресов источников данных;&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039; Auxilary Data &amp;#039;&amp;#039;&amp;#039; — дополнительная информация, не должна использоваться в текущей версии протокола.&lt;br /&gt;
&lt;br /&gt;
=== Другие типы пакетов ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 !Тип||Наименование||Описание&lt;br /&gt;
 |-&lt;br /&gt;
 |0x12||Version 1 Membership report||rowspan=&amp;quot;3&amp;quot; |Должны поддерживаться для совместимости с предыдущими версиями&lt;br /&gt;
 |-&lt;br /&gt;
 |0x16||Version 2 Membership report&lt;br /&gt;
 |-&lt;br /&gt;
 |0x17||Version 2 Leave Group&lt;br /&gt;
 |-&lt;br /&gt;
 |0x13||[[Distance Vector Multicast Routing Protocol]]||Экспериментальный протокол&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[IGMP snooping]]&lt;br /&gt;
* [[SCTP]]&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
{{примечания}}&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* [http://www.networksorcery.com/enp/protocol/igmp.htm Network Sorcery — IGMP]&lt;br /&gt;
* [https://web.archive.org/web/20080430022710/http://technet2.microsoft.com/windowsserver/en/library/fe09af2c-3deb-4c6c-a79f-35c6953a8c9d1033.mspx IPv4 Multicasting Tools and Settings on Microsoft TechNet]&lt;br /&gt;
* [https://web.archive.org/web/20070927203853/http://www.commsdesign.com/article/printableArticle.jhtml?articleID=52200253 Different version and details on IGMP]&lt;br /&gt;
&lt;br /&gt;
{{IPstack}}&lt;br /&gt;
&lt;br /&gt;
[[Категория:TCP/IP]]&lt;br /&gt;
[[Категория:Протоколы сетевого уровня]]&lt;br /&gt;
[[Категория:Интернет-протоколы]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Alex NB OT</name></author>
	</entry>
</feed>