Книга: UNIX: разработка сетевых приложений
21.5. Многоадресная передача от отправителя
21.5. Многоадресная передача от отправителя
Внедрение многоадресной передачи в глобальные сети было затруднено несколькими обстоятельствами. Главная проблема заключается в том, что протокол маршрутизации MRP, описанный в разделе 21.4, должен обеспечивать доставку данных от всех отправителей (которые могут располагаться в сети совершенно произвольным образом) всем получателям (которые также могут быть размещены произвольно). Еще одна проблема связана с выделением адресов: адресов многоадресной передачи IPv4 недостаточно для того, чтобы можно было статически назначать их всем, кому они нужны, как это делается с адресами направленной передачи. Чтобы передавать многоадресные сообщения в глобальной сети, не конфликтуя с другими отправителями, нужно иметь уникальный адрес, однако механизма глобального выделения адресов еще не существует.
Многоадресная передача от отправителя (source-specific multicast, SSM) [47] представляет собой эффективное решение этих проблем. Она состоит в соединении адреса группы с адресом отправителя.
? При подключении к группе получатели предоставляют маршрутизаторам не только адрес группы, но и адрес отправителя. Это устраняет проблему поиска, потому что теперь маршрутизатор точно знает, где находится отправитель. Однако при этом сохраняется удобство масштабирования приложений, потому что отправителю все так же не нужно знать адреса всех своих получателей. Такое решение очень сильно упрощает протоколы маршрутизации многоадресной передачи.
? Идентификатор группы перестает быть групповым адресом и становится комбинацией адреса отправителя (адреса направленной передачи) и адреса группы (адреса многоадресной передачи). Такая комбинация называется в SSM каналом (channel). Благодаря этому отправитель может выбрать любой адрес многоадресной передачи, так как уникальность канала обеспечивается уже уникальностью адреса отправителя. Сеанс SSM представляет собой комбинацию адреса отправителя, адреса группы и порта.
SSM обеспечивает некоторую защиту от подмены адреса, потому что отправителю 2 становится значительно труднее передавать сообщения по каналу отправителя 1, так как идентификатор этого канала включает в себя адрес отправителя 1. Подмена все еще остается возможной, однако серьезно усложняется.
- 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. Резюме
- Упражнения
- Глава 21 Многоадресная передача
- 21.4. Многоадресная передача в глобальной сети
- Передача прав
- 6.4.2. Передача номенклатурных позиций между ячейками склада
- Глава 11 Передача во временное пользование и заказы
- Глава 10 Передача файлов
- 5.3.8. Защищенная передача данных
- 10.1.3. Передача файлов
- Передача параметров
- 10.6.7. Передача сигналов: kill() и killpg()
- Глава 19 Передача почты: протокол SMTP
- Передача по ссылке