Книга: UNIX: разработка сетевых приложений

21.4. Многоадресная передача в глобальной сети

21.4. Многоадресная передача в глобальной сети

Многоадресная передача внутри локальной сети, описанная нами в предыдущем разделе, проста. Один узел посылает пакет многоадресной передачи, и любой заинтересованный узел получает этот пакет. Преимущество многоадресной передачи перед широковещательной состоит в сокращении нагрузки на все узлы, не заинтересованные в получении пакетов многоадресной передачи.

Многоадресная передача имеет преимущества и при работе в глобальных сетях. Рассмотрим глобальную сеть, изображенную на рис. 21.4.


Рис. 21.4. Пять локальных сетей с пятью маршрутизаторами многоадресной передачи

Здесь изображены пять локальных сетей, соединенных пятью маршрутизаторами многоадресной передачи.

Будем считать, что некая программа запущена на пяти из показанных узлов (скажем, программа прослушивания группового аудиосеанса), и эти пять программ присоединяются к данной группе. Тогда каждый из пяти узлов присоединяется к группе. Мы также считаем, что каждый маршрутизатор многоадресной передачи общается с соседними маршрутизаторами многоадресной передачи при помощи протокола маршрутизации многоадресной передачи (multicast routing protocol), который мы обозначим просто MRP. Это показано на рис. 21.5.


Рис. 21.5. Присоединение пяти узлов к группе многоадресной передачи в глобальной сети

Когда процесс на узле присоединяется к группе, этот узел отправляет всем присоединенным к той же сети маршрутизаторам многоадресной передачи сообщение IGMP, информирующее их о том, что узел только что присоединился к группе. Затем маршрутизаторы обмениваются этой информацией по MRP, так что каждый маршрутизатор знает, что делать, если он получит пакет, предназначенный для конкретного адреса многоадресной передачи.

ПРИМЕЧАНИЕ

Адресация многоадресной передачи — не до конца исследованная тема, и ее описание может легко составить отдельную книгу.

Теперь будем считать, что процесс на узле, изображенном слева вверху, начинает отправлять пакеты на адрес многоадресной передачи. Допустим, этот процесс отправляет аудиопакеты, ожидаемые получателями многоадресной передачи. Эти пакеты показаны на рис. 21.6.


Рис. 21.6. Отправка пакетов на адрес многоадресной передачи в глобальной сети

Проследим шаги, которые проходит пакет от отправителя до получателей.

? Пакеты многоадресной передачи рассылаются отправителем в левой верхней локальной сети. Получатель H1 получает их (так как он присоединился к группе), как и MR1 (поскольку маршрутизатор многоадресной передачи должен получать все пакеты многоадресного вещания).

? MR1 передает пакет многоадресной передачи дальше маршрутизатору MR2, поскольку протокол маршрутизации многоадресной передачи сообщил MR1, что MR2 должен получить пакеты, предназначенные для этой группы.

? MR2 передает этот пакет присоединенной локальной сети, поскольку узлы H2 и H3 входят в группу. Он также создает копию пакета и отправляет ее MR3.

Создание копии пакета маршрутизатором свойственно только многоадресной передаче. Пакет направленной передачи никогда не дублируется при передаче маршрутизаторами.

? MR3 с отправляет пакет многоадресной передачи маршрутизатору MR4, но не передает копию в свою локальную сеть, потому что ни один из узлов в этой сети не присоединился к группе.

? MR4 передает пакет на присоединенную локальную сеть, поскольку узлы H4 и H5 входят в группу. Он не создает копии пакета и не отправляет пакет маршрутизатору MR, поскольку ни один из узлов присоединенной к MR локальной сети не входит в группу, и MR4 знает об этом из информации о маршрутизации многоадресной передачи, которой он обменялся с MR.

Две менее желательные альтернативы многоадресной передаче в глобальной сети — лавинная адресация (broadcast flooding) и отправка индивидуальных копий каждому получателю. В первом случае отправитель будет передавать широковещательные пакеты, а каждый маршрутизатор будет передавать пакет с каждого из своих интерфейсов, кроме принимающего. Ясно, что это увеличит число незаинтересованных узлов и маршрутизаторов, которым придется получать этот пакет.

Во втором случае отправитель должен знать IP-адреса всех получателей и отослать каждому по копии пакета. В случае с пятью пакетами, который представлен на рис. 21.6, это потребует пяти пакетов в локальной сети отправителя, четырех пакетов, идущих от MR1 к MR2, и двух пакетов, идущих от MR2 к MR3 и к MR4. А если получателей будет миллион?!

Оглавление книги


Генерация: 2.728. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз