zed.0xff.me

IPTV: unicast vs multicast

Для доставки видео-потока пользователям будем использовать технологию multicast. Подробно про мультикаст можно прочитать в википедии или на хабре.

Попытаюсь коротко и наглядно объяснить почему мультикаст:


(картинка кликабельна)

unicast – передача пакетов единственному адресату. это все стандартные http / ftp / dns и т.д. запросы-ответы.

multicast – передача пакета не одному, а нескольким адресатам. на низком уровне это выглядит как “подписка” определенных машин на рассылку чего-либо (например, потокового видео)

По вышеприведенному рисунку несложно сделать вывод, что мультикаст вкупе с соответствующим оборудованием позволяет не дублировать трафик для N разных клиентов, смотрящих один и тот же канал.
А так же, (что не отображено на рисунке) трафик с видео-потоком получают только те клиенты, которым он нужен. Т.к. каталист может распознавать IGMP пакеты, и не слать трафик “куда не просят” :)
В случае же обычного хаба – он тупо кидает поток на все порты, не заботясь о том нужен ли он там вообще или нет.

И об оборудовании – из цисок используем только каталисты, т.е. никаких маршрутизаторов.
Каталисты пробовали следующие:

  • Cisco Catalyst 2950
  • Cisco Catalyst 2960
  • Cisco Catalyst 3550

В случае 2950 понадобятся дополнительные телодвижения, т.к. он не может работать как “igmp snooping querier”, но об этом позже.

IPTV: начало

Этим постом хотелось бы начать серию постов о вещании видео в локальной сети ISP.

В качестве источника видео-сигнала для начала возьмем обычный PC с DVB-картой SkyStar, а также спутниковую тарелку, направленную “куда надо” :) т.е. на спутник, вещающий то что мы хотим сначала принять, а потом и раздать по локалке.

Ловить и вещать будем с помощью VLC.
Еще есть, например, getstream, но VLC использовать пока удобнее.
Может быть попозже присмотрюсь и к getstream, если будут проблемы с VLC.