Site Tools


software:msd:internals

This is an old revision of the document!


FIXME This page is not fully translated, yet. Please help completing the translation.
(remove this paragraph once the translation is finished)

Внутреннее устройство

Клиентский запрос поступает на встроенный web сервер. К нему применяются настройки описанные в разделе HTTP подсекция skt и congestionControl.

Если клиент запрашивает Stream Hub то его сокет передаётся существующему Stream Hub либо Stream Hub может быть создан по запросу клиента.

Для каждого канала создаётся свой Stream Hub.

К одному Stream Hub может быть подключено множество клиентов.

Stream Hub имеет уникальное имя по которому идентифицируется. Для динамических Stream Hub оно генерируется автоматом на основе URL запроса. Для каналов из файла конфигурации оно соответствует имени канала.

Stream Hub привязывается к одному потоку (thread + kqueue/epoll).
Каждый поток привязывается (bind) к ядру процессора. Можно настроить количество потоков и привязку к процессорам.

Stream Hub может иметь один и более источников (multicast, http и тп).
Каждый источник имеет свой кольцевой буфер (ring Buf) для приёма данных.

Stream Hub по мере поступления данных из активного источника отправляет клиентам данные из кольцевого буфера.

Новому клиенту Stream Hub может отправить MPEG2-TS служебные заголовки (флаг fMPEG2TSAnalyzing в конфиге). Это необходимо чтобы декодер клиента инициализировался и не отбрасывал MPEG2-TS пакеты в поисках служебных данных. Так же Stream Hub может отправить указанное в конфиг файле / URL запроса количество килобайт precache из кольцевого буфера.

Виды Stream Hub

software/msd/internals.1414023521.txt.gz · Last modified: 2014/10/23 00:18 by root