Книга: UNIX: разработка сетевых приложений
21.12. Резюме
21.12. Резюме
Для запуска приложения многоадресной передачи в первую очередь требуется присоединиться к группе, заданной для этого приложения. Тем самым уровень IP получает указание присоединиться к группе, что, в свою очередь, указывает канальному уровню на необходимость получать кадры многоадресной передачи, отправляемые на соответствующий адрес многоадресной передачи аппаратного уровня. Многоадресная передача использует преимущество аппаратной фильтрации, имеющееся у большинства интерфейсных карт, и чем качественнее фильтрация, тем меньше число нежелательных получаемых пакетов. Использование аппаратной фильтрации сокращает нагрузку на все узлы, не задействованные в приложении.
Многоадресная передача в глобальной сети требует наличия маршрутизаторов, поддерживающих многоадресную передачу, и протокола маршрутизации многоадресной передачи. Поскольку не все маршрутизаторы в Интернете имеют возможность многоадресной передачи, для этой цели используется IP-инфраструктура многоадресной передачи.
API для многоадресной передачи обеспечивают девять параметров сокетов:
? присоединение к группе на интерфейсе;
? выход из группы;
? блокирование передачи от источника;
? разблокирование заблокированного источника;
? присоединение интерфейса к группе многоадресной передачи от источника;
? выход из группы многоадресной передачи от источника;
? установка интерфейса по умолчанию для исходящих пакетов многоадресной передачи;
? установка значения TTL или предельного количества транзитных узлов для исходящих пакетов многоадресной передачи;
? включение или отключение закольцовки для пакетов многоадресной передачи.
Первые шесть параметров предназначены для получения пакетов многоадресной передачи, последние три — для отправки. Существует достаточно большая разница между указанными параметрами сокетов IPv4 и IPv6. Вследствие этого код многоадресной передачи, зависящий от протокола, очень быстро становится «замусорен» директивами #ifdef
. Мы разработали 12 наших собственных функций с именами, начинающимися с mcast_
, для упрощения написания приложений многоадресной передачи, работающих как с IPv4, так и с IPv6.
- 21.1. Введение
- 21.2. Адрес многоадресной передачи
- 21.3. Сравнение многоадресной и широковещательной передачи в локальной сети
- 21.4. Многоадресная передача в глобальной сети
- 21.5. Многоадресная передача от отправителя
- 21.6. Параметры сокетов многоадресной передачи
- 21.7. Функция mcast_join и родственные функции
- 21.8 Функция dg_cli, использующая многоадресную передачу
- 21.9. Получение анонсов сеансов многоадресной передачи
- 21.10. Отправка и получение
- 21.11. SNTP: простой синхронизирующий сетевой протокол
- 21.12. Резюме
- Упражнения