Multicast / UDP Router - PullRequest
       16

Multicast / UDP Router

0 голосов
/ 25 февраля 2012

Я смотрю, как сделать многоадресный (видеопоток) маршрутизатор со следующими требованиями:

  • прием и отправка многоадресных потоков на скорости 3-30 Мбит / с (перенаправление vlan)
  • взадержка (или хранилище) для компенсации перегрузки сети
  • туннелирование TCP (UDP на TCP и наоборот)
  • скорость формирования выходных потоков UDP с джиттером до 1 секунды
  • для туннелирования TCP, поддержка многосетевой сети
  • сотни потоков на 3-30 Мбит

Я провел обширные исследования и не смог найти ни одного продукта для сетевого или видео вещания.фактически соответствует этим требованиям.

Я реализовал приложение C linux, которое выполняет вышеописанное для отдельного потока, но теперь мне нужно добавить веб-интерфейс, поддержку нескольких потоков и т. д., поэтому мне было интересно, есть ли что-то, чтоМожно ли выполнить вышесказанное с качеством и надежностью, подходящими для видеотрансляции, как какой-то продукт?Делать это в C нелегко, поэтому мне было интересно, есть ли языки более высокого уровня, которые могли бы соответствовать производительности?Был бы Perl, Python, Java будет хорошим выбором?

Как я могу разработать этот вид программного обеспечения?В настоящее время я использую приложение C, работающее на Redhat с ядром RT с интерфейсом командной строки и поддержкой одного потока.

Я хочу создать приложение, которое будет работать 100 потоков 24/7 (используя 8 или 16 ядерную систему с 64 ГБ ОЗУ)и было бы легко настроить его на лету, используя либо командную строку, либо веб-интерфейс.

Я просто не вижу никакой лучшей опции, чем текущее ядро ​​Redhat RT и простое приложение на C пользователя.Кажется, это лучший и самый простой вариант.

1 Ответ

2 голосов
/ 25 февраля 2012

Обычное разделение в архитектуре такого приложения состоит в том, чтобы иметь высокопроизводительные части, выполняемые кодом C, и писать компоненты с низкой производительностью, такие как пользовательский интерфейс для конфигурации и тому подобное, на языке более высокого уровня, таком как Python или Ruby или что вы. Было бы трудно выполнить требования к производительности на языке высокого уровня, но было бы излишне мазохистским писать систему веб-конфигурации на языке C.

...