Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Многоадресная рассылка IP-адресов попадает в категорию неразорваемой плоскости данных и неотключаемой плоскости управления. Все приложения играют конечную роль. В настоящее время большинство реализаций многоадресной рассылки IP используют набор вариантов сокета, предлагаемых Стивом Деерингом в группе задач по разработке Интернета (IETF). Таким образом, пять операций становятся доступными:
- IP_MULTICAST_TTL— задает время жизни, управляет областью сеанса многоадресной рассылки.
- IP_MULTICAST_IF— определяет интерфейс, используемый для многоадресной рассылки.
- IP_ADD_MEMBERSHI — присоединяется к указанному сеансу многоадресной рассылки.
- IP_DROP_MEMBERSHIP— удаляется из сеанса многоадресной рассылки.
- IP_MULTICAST_LOOP — управляет циклом многоадресного трафика.
Настройка времени в реальном времени для сокета многоадресной рассылки напрямую сопоставляется с использованием кода команды SIO_MULTICAST_SCOPE для WSAIoctl.
Метод определения IP-интерфейса, используемого для многоадресной рассылки, осуществляется через параметр сокета tcp/IP, как описано в приложении Windows Sockets 2 Protocol-Specific. Остальные три операции хорошо рассматриваются семантикой сокетов Windows 2.
Приложение откроет сокеты с флагами c_leaf/d_leaf в WSASocket. Он будет использовать WSAJoinLeaf для добавления себя в группу многоадресной рассылки в интерфейсе по умолчанию, предназначенном для многоадресных операций. Если флаг в WSAJoinLeaf указывает, что этот сокет является только отправителем, операция присоединения по сути является no-op, и сообщения IGMP не нужно отправлять. В противном случае пакет IGMP отправляется маршрутизатору, чтобы указать интересы в получении пакетов, отправленных на указанный адрес многоадресной рассылки. Так как приложение создало специальные сокеты c_leaf/d_leaf, используемые только для многоадресной рассылки, стандартная функция closesocket будет использоваться для выхода из сеанса многоадресной рассылки. Код команды SIO_MULTIPOINT_LOOPBACK для WSAIoctl предоставляет универсальный механизм управления для определения того, могут ли данные, отправленные на сокет d_leaf в схеме, отличной от нескольких точек, также получать на одном сокете.
Заметка
Версия Winsock параметра IP_MULTICAST_LOOP семантически отличается от версии UNIX IP_MULTICAST_LOOP параметра:
- В Winsock параметр IP_MULTICAST_LOOP применяется только к пути получения.
- В версии UNIX параметр IP_MULTICAST_LOOP применяется к пути отправки.
Например, приложения ON и OFF (которые проще отслеживать, чем X и Y), присоединяются к одной группе в одном интерфейсе; приложение ON задает параметр IP_MULTICAST_LOOP включено, приложение OFF задает параметр IP_MULTICAST_LOOP отключен. Если ON и OFF являются приложениями Winsock, OFF может отправляться в ON, но ON не может отправляться в OFF. В отличие от этого, если ON и OFF являются приложениями UNIX, ON может отправляться в OFF, но OFF не может отправляться в ON.