Компания НетАП опубликовала (http://www.netup.tv/ru-RU/multifiles.php) исходные коды системы распространения файлов, использующей для своей работы мультикаст потоки. Лицензия GPLv2, GPLv3.
Использование multicast позволяет оперативно передать файл на любое количество клиентов, задействовав только один поток. Распространяемый файл циклически передается в сеть в виде UDP multicast-потока на определенный multicast-адрес (по умолчанию – 224.2.2.4, порт 2222). При этом клиент, желающий скачать этот файл, подключается к этой группе, посылая IGMP-запрос, и начинает получать этот файл. Как только получен весь файл, клиент отключается от группы и проверяет целостность полученного файла.
Данная система позволяет элегантно и с минимальными аппаратными затратами решить задачу распространения обновленных прошивок на большое количество клиентских приставок IPTV ( IP STB ).URL: http://www.netup.tv/ru-RU/multifiles.php
Новость: http://www.opennet.me/opennews/art.shtml?num=19163
Интересно, какие модели STB такое умеют?
В какую вставишь эту систему - такая и будет уметь ...
dlink dib-120, например
это только для LAN подойдёт и только если процент потерь очень низкий, переповторять "битые" данные придётся обычным unicast
а что мешает применить par2 ? скажем пропорционально степени потерь.
> а что мешает применить par2 ? скажем пропорционально степени потерь.Только то, что сервер не знает процента потерь, да и для каждого клиента процент потерь разный.
http://sourceforge.net/projects/rscode/ - простенькая либа для Reed–Solomon error correction ... прикручивается за 5 минут.
Только для LAN? Ну ты сказал... а, например, для DVB-S?
Есть масса способов обеспечить передачу данных в случае даже пропажи некоторого количества пакетов; общее название - Error Correction Codes (Коды Исправления Ошибок). Пример такого кода, удобного для IP-пакетов, применяется в RAID-5 - каждый пакет/сектор содержит CRC, и к каждой группе пакетов добавляется ещё один с XOR всех остальных. Система выдерживает пропажу/искажение одного (любого) пакета из группы.
>Как только получен весь файл, клиент отключается от группы и проверяет целостность полученного файла.а если у мну диалапЪ? источник снизойдет до ширины моего канала?
..."Ага!", - сказали вятские мужики и пошли рубить лес топорами.Вы что, хотите это для торрентов использовать?!
У каждой технологии есть своя область применения. Область применения данной указана в конце поста. Конечно, можно эту хитрость использовать и для других вещей, но не как замену FTP.
спутниковые операторы такого клиента использовали...качают в 30 Мбит/с канале уникастом фильмо, как только скорость падает до 50 килобайт/с сразу наступает прозрение :) лучше пусть все новые киношки прокачает со скоростью 3 мега в секунду (4 минуты на обычное кино, 8 на двд (ну пусть на минуту дольше в смысле коррекции ошибок, все равно от 8 киношек в час --- 160-300 за 24 часа)), чем одно и тоже будут доить по капле.
>Данная система позволяет элегантноне очень-то и элегантно - потерялся один пакет - жди следующей передачи...
хотя, если учесть, что раньше и такого не было - прогресс!
>не очень-то и элегантно - потерялся один пакет - жди следующей передачи...А избыточность придумал трус, да?Ну вон рида-соломона вроде посоветовали выше =).При должной избыточности не слишком большие потери будут просто пофигу.
Фигня... НетАп как всегда выложил то, что им уже не нужно и на чем - как НетАп осознал - денег они не заработают.
У меня на столе стоит IPTV приставка D-Link DIB-120 (а под столом коробка еще с десятком их же) - стоит дешевле Амины (а также других девайсов с HDMI) и не требует написания middleware (только html-страницы с управляющим javascript'ом - API доступен бесплатно по первой просьбе у производителя). Производитель тоже дает (правда без исходников, если мне память не изменяет) готовую утилиту для обновления по мультикасту - спрашивается - и что толку? У своем интерфейсе я сделал, что при обращении на сервер за программой передач, приставка отсылает свою версию и если доступна версия новее - включается скачиванием и обновление прошивки юникастом. И все. Легко и просто - безо всяких заморочек с мультикастом, боязнью - как бы чего не дошло битым и как бы пользователь не выключил приставку в процессе прошивки....
НетАп пытается продать свою систему для предоставления услуг IPTV и, видать, не очень получается. И чем больше будет девайсов типа упомянутого DIB-120 - тем будет хуже.
>[оверквотинг удален]
>не изменяет) готовую утилиту для обновления по мультикасту - спрашивается -
>и что толку? У своем интерфейсе я сделал, что при обращении
>на сервер за программой передач, приставка отсылает свою версию и если
>доступна версия новее - включается скачиванием и обновление прошивки юникастом. И
>все. Легко и просто - безо всяких заморочек с мультикастом, боязнью
>- как бы чего не дошло битым и как бы пользователь
>не выключил приставку в процессе прошивки....
>НетАп пытается продать свою систему для предоставления услуг IPTV и, видать, не
>очень получается. И чем больше будет девайсов типа упомянутого DIB-120 -
>тем будет хуже.А можно подробнее?
Подскажите пожалуйста.
Ситуация следующая:Есть сервер с VLC плеером который вещает в сеть по мультикасту каналы.
Как со спутника принял так в сеть и отдал.
С компа можно смотреть с помощью того же VLC плеера прописав либо
адрес канала либо подрузив плейлист.
Адреса вида для VLC - udp://@233.255.12.45:1234
Подскажипе пожалуйста какую прошивку применить для DIB-120? Как ее
туда залить? И где коректировать список каналов?
Есть ли описание этого всего?
Гы. В коде после каждой закрывающей фигурной скобки стоит ";". Не думал, что у кого-то есть *такие* привычки.
>Гы. В коде после каждой закрывающей фигурной скобки стоит ";". Не думал,
>что у кого-то есть *такие* привычки.Похоже на автоформатирование, типа как у Eclipse, Visual Studio, и т.п.
Ну что, домашнее задание по C - смоделировать такую ситуацию когда употребление ";"
после "}" вызовет ошибку программы!!!
ошибку программы не знаю, а компиляции -пожалуйста
do {}; while(0);
что-нибудь еще есть?
>ошибку программы не знаю, а компиляции -пожалуйста
>do {}; while(0);
>что-нибудь еще есть?main(){
for(;;)
{
if(0) {
;
};
else {
return 0;
};
};
};
Во!!! Так этож можно замутить Torrent-over-DVB
http://udpcast.linux.lu/
http://depositfiles.com/files/ybqaos84l
http://depositfiles.com/files/5hf8fqejh
http://depositfiles.com/files/6syej8h2t