Для полного понимания темы IGMP Proxy, PIM и мультикаста начнем сначала. Вы, вероятно, знакомы с тем, как работает эфирное телевидение. Телевизионная вышка передает закодированный сигнал по радиоволнам, и клиент принимает его с антенны, чтобы увидеть картинку на телевизоре. Аналогично происходит и с кабельным ТВ, за исключением того, что сигнал идет по проводу к каждому приемнику.
Однако есть общее: сигнал поступает к каждому клиенту одновременно. Когда вы включаете телевизор, вы видите сигнал, который отправляется всем. Но если вы откроете, к примеру, YouTube, то все будет иначе. Каждому пользователю предоставляется свой пакет трафика.
Давайте разберем, что такое мультикаст. Это метод передачи трафика, который комбинирует два подхода. На первом уровне пакет отправляется только один раз, но доставляется к нескольким получателям, которые запрашивали его.
Примером использования мультикаста может служить IPTV. Не все провайдеры предоставляют эту услугу, но она становится все более популярной. Подумаем о ситуации, где два пользователя, Вася и Петя, подключены к одному провайдеру. В этом случае сервер IPTV отправляет сигналы не всем пользователям, а только тем, кто подключен в данный момент.
Важно, что Вася и Петя будут получать сигнал и пакеты только того канала, который в данный момент включен. Например, Вася смотрит «Первый канал», а Петя «СТС». Сервер ясно отправляет пакеты информации только по активному каналу. Ещё один пример — это онлайн конференция, которой часто пользуются крупные компании. Ведь нет смысла распределять трафик и отправлять всем, можно просто от одного раздавать информацию каждому клиенту.
Реализация
Теперь стоит перед нами следующая задача – как это организовать. Допустим, у провайдера в сети имеется большое количество узлов, коммутаторов, маршрутизаторов, серверов, а также центральный сервер IPTV. Задача сервера заключается в том, чтобы направлять трафик таким образом, чтобы он максимально быстро и с минимальным количеством переходов достигал конечного пользователя.
При этом необходимо избежать образования кольца – когда трафик начинает ходить по кругу бесконечно. Поэтому маршрут передачи пакетов будет выглядеть как дерево, и будет использоваться подобная топология. Иными словами, пакет, выходящий от сервера, приходит к одному из узлов, который затем определяет, куда отправить пакет дальше.
Сейчас мы рассмотрим протокол IGMP (Internet Group Management Protocol) — это протокол, который позволяет быстро подключаться клиенту к ближайшему маршрутизатору. Он информирует маршрутизатор о необходимости трафика по определенному каналу. В отсутствие запроса к маршрутизатору он просто ожидает, освобождая ресурсы сети.
Также PIM (Protocol Independent Multicast) протокол позволяет устанавливать адресацию от сервера к конечному получателю через одну ветвь дерева, постоянно отслеживая путь для его корректировки в случае выключения или перемещения какого-либо сегмента.
Проще говоря, сервер передаёт только один сигнал каждого телевизионного канала, а пользователи получают только сигнал выбранного канала. Несколько приёмников могут одновременно получать один и тот же сигнал, именно для этого нужен протокол IGMP.
Куда идёт пакет
Давайте рассмотрим это на примере. Вообще, данная технология работает с использованием IP-адресов из диапазона 224.0.0.0-239.255.255.255. Например, сервер отправляет один канал с адресом 224.2.2.4, который является каналом «СТС». Протокол IGMP используется только между клиентом и ближайшим маршрутизатором, к которому он подключен.
- Итак, пользовательская программа отправляет запрос на просмотр канала 224.2.2.4 ближайшему маршрутизатору.
- Если в маршрутизаторе уже есть поток и через него проходит дерево канала, который запросил клиент, то пакеты сразу же отправляются пользователю, и он видит изображение.
- Как только клиент выключит программу, маршрутизатор отправляет сигнал о выходе из группы, и больше туда не передается никакой сигнал.
- Однако роутер постоянно посылает сигнал на всех подключенных клиентов, чтобы убедиться, что они все ещё получают трафик. Это происходит каждые 60 секунд. Клиент, который получил такой запрос, должен ответить, иначе его отключат. Всё это происходит в автономном режиме.
Как включить на роутере
Этот функционал роутера необходим для комфортного просмотра IPTV. По умолчанию он уже активирован, но рекомендуется проверить его настройки. В этом руководстве я покажу, как включить эту функцию на примере роутера модели TP-Link.
Зайдем в раздел «Сеть» – «IPTV» и активируем опцию «IGMP Прокси». Также важно установить отметку напротив функции «IGMP Snooping», которая позволяет исключить получение трафика от группы, к которой не принадлежит пользователь. На более новых версиях прошивки этот пункт находится в том же разделе, только сначала необходимо перейти на вкладку «Дополнительные настройки». Не забудьте сохранить все изменения, нажав на кнопку «Сохранить» в конце.