Многоадресное программирование

Многоадресное программирование поддерживается с помощью сокетов Windows. Windows Sockets включает обнаружение многоадресного прослушивателя (MLD) версий 1 (MLDv1) и 2 (MLDv2) в IPv6 и протокол управления группами Интернета версий 2 (IGMPv2) и 3 (IGMPv3) с помощью параметров сокета или ioCTL. В этом разделе описывается реализация Windows, описывается, как включить многоадресное программирование с помощью сокетов Windows, а также приведены примеры программирования, демонстрирующие ее использование.

Вторая версия IGMP, которая далее называется IGMPv2, позволяет узлам присоединяться к группам многоадресной рассылки, определяемым адресом многоадресной рассылки IPv4, и оставлять их в определенном сетевом интерфейсе. Сокеты Windows позволяют приложению присоединяться к определенным сокетам и оставлять такие группы. Однако недостаток IGMPv2 заключается в том, что любой исходный адрес IPv4, присоединенный к группе IGMPv2, может передаваться всем участникам, что может привести к переполнению группы и сделать ее непригодной для передач, для которых требуется первичный источник, например интернет-радиостанция. Проблема С IGMPv2 заключается в невозможности выборочного выбора одного адреса источника IPv4 (или даже нескольких источников) и невозможности блокировать отправителей (например, мошеннических вещателей или лиц, виновных в отказе в обслуживании) для данной группы многоадресной рассылки. IGMPv3 устраняет эти недостатки.

С помощью сокетов Windows и IGMPv3 приложения могут выбрать определенный исходный адрес IPv4 многоадресной рассылки и пару групп многоадресной рассылки. Кроме того, сокеты Windows позволяют разработчикам выборочно разрешать дополнительные широковещательные организации в заданной паре "источник-группа" или позволяют приложениям блокировать определенные широковещательные организации. IGMPv3 поддерживается в Windows Vista и более поздних версиях.

Первая версия MLD для IPv6, называемая MLDv1, очень похожа на IGMPv2 и имеет те же ограничения. MLDv1 позволяет узлам присоединяться к группам многоадресной рассылки, определяемым адресом многоадресной рассылки IPv6, и оставлять их в определенном сетевом интерфейсе. Сокеты Windows позволяют приложению присоединяться к определенным сокетам и оставлять такие группы. Однако любой исходный адрес IPv6, присоединенный к группе MLDv1, может передаваться всем участникам, что может привести к переполнению группы и сделать ее непригодной для передач, требующих первичного источника. Проблема MLDv1 заключается в невозможности выборочного выбора одного адреса источника IPv6 (или даже нескольких источников) и невозможности блокировать отправителей (таких как изгоев вещателей или лиц, виновных в отказе в обслуживании) для данной группы многоадресной рассылки. MLDv2 устраняет эти недостатки.

С помощью сокетов Windows и MLDv2 приложения могут выбрать определенный исходный адрес IPv6 многоадресной рассылки и пару групп многоадресной рассылки. Кроме того, сокеты Windows позволяют разработчикам выборочно разрешать дополнительные широковещательные организации в заданной паре "источник-группа" или позволяют приложениям блокировать определенные широковещательные организации. MLDv2 поддерживается в Windows Vista и более поздних версиях.

Существует два подхода, которые программист может использовать при разработке многоадресных приложений в Windows. Первый подход основан на изменениях; Источники многоадресной рассылки добавляются или удаляются с помощью параметров сокета, даже во время передачи по мере необходимости. Второй подход основан на окончательном состоянии; исходные адреса и все включенные или исключенные адреса указываются с помощью IOCTL. Каждый подход является допустимой практикой многоадресной рассылки, но разработчики могут найти использование параметров сокетов и подход на основе изменений более интуитивно понятным и гибким.

Этот раздел содержит следующие страницы:

"Page title" (Заголовок страницы). Описание
MLD и IGMP с использованием сокетов Windows Перечисляет параметры многоадресных сокетов, доступные для использования в программировании windows Sockets, используя подход к программированию на основе изменений. Определяет две категории многоадресных приложений.
Поведение параметра сокета многоадресной рассылки Содержит обширную таблицу с объяснением последствий и требований вызова параметров многоадресной рассылки в определенном порядке.
Пример многоадресного программирования Фрагмент кода программирования, демонстрирующий использование параметров сокета для включения многоадресных приложений в Windows.
Многоадресное программирование на основе конечного состояния Объясняет подход к окончательному состоянию и способы использования ioCTL для многоадресного программирования с помощью сокетов Windows.
Перенос широковещательных приложений в IPv6 Содержит рекомендации по переносу широковещательных приложений IPv4 в многоадресную рассылку IPv6.