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”, но об этом позже.