I codici sorgente del progetto msd (Multi Stream daemon) sono stati trasferiti alla licenza BSD e il codice sorgente è pubblicato su GitHub. In precedenza, veniva distribuita solo la versione ridotta msd_lite, mentre il prodotto principale era proprietario. Oltre al cambiamento di licenza, è stato effettuato un lavoro di porting sulla piattaforma macOS (in precedenza supportati FreeBSD e Linux).
Il programma msd è progettato per organizzare lo streaming IPTV su rete tramite protocollo HTTP. Uno un server è in grado di servire migliaia di clienti simultaneamente. L'accento è posto sul raggiungimento della massima performance, oltre a fornire impostazioni avanzate che influenzano la qualità percepita dei servizi: velocità di cambio canale, resistenza ai guasti di trasmissione. È implementato il proxying in modalità 'uno a molti': i dati ricevuti attraverso una singola connessione HTTP possono essere distribuiti a molti clienti connessi.
Caratteristiche
- Supporto per i protocolli IPv4 e IPv6.
- Analizzatore di flusso MPEG2-TS.
- Switching automatico al backup in caso di assenza o errori sulla sorgente attuale.
- Zero Copy on Send (ZCoS) — riduce il carico operativo per la gestione dei clienti connessi, trasferendo l'intero lavoro di invio dei dati al kernel del sistema operativo.
- Supporto per client http 'half closed'.
- Ricezione di udp-multicast, incluso rtp, simultaneamente da diverse interfacce.
- Ricezione tramite tcp-http-get (in un singolo flusso e broadcasting a molti clienti).
- Disconnessione automatica dalle fonti se non ci sono clienti connessi.
- Utilizzo di diversi algoritmi di controllo della congestione TCP a seconda della porta su cui si connette il cliente e dell'URL della richiesta del cliente.
- Invio ‘intelligente’ delle intestazioni MPEG2-TS ai nuovi clienti.
- Invio immediato di dati al nuovo cliente dal buffer circolare, per minimizzare il tempo di attesa per l'inizio della riproduzione.
- Invio di eventuali intestazioni http aggiuntive nelle richieste e nelle risposte.
- Modelli di configurazione per Stream Hub e fonti di flusso.
- Statistiche dettagliate per ogni connessione TCP, per semplificare la ricerca di problemi a livello di rete.
Fonte: opennet.ru
