Die Quelltexte des msd-Projekts (Multi Stream Daemon) sind auf die BSD-Lizenz umgestellt worden, und der Quellcode wurde auf GitHub veröffentlicht. Zuvor wurde nur eine verkürzte Version msd_lite verbreitet, während das Hauptprodukt proprietär war. Neben der Lizenzänderung wurde auch an der Portierung auf die macOS-Plattform gearbeitet (früher wurden FreeBSD und Linux unterstützt).
Das Programm msd dient zur Organisation des IPTV-Streamings über das HTTP-Protokoll. Ein der Server kann gleichzeitig mehrere Tausend Kunden bedienen. Der Fokus liegt auf maximaler Leistung sowie auf feinen Anpassungsmöglichkeiten, die die Qualität der Dienstleistung für die Kunden beeinflussen: Geschwindigkeit beim Kanalwechsel und Robustheit gegen Übertragungsfehler. Es wird ein „One-to-Many“-Proxying realisiert: Daten, die über eine HTTP-Verbindung empfangen werden, können an viele angeschlossene Kunden verteilt werden.
Besonderheiten
- Unterstützung für die Protokolle IPv4 und IPv6.
- MPEG2-TS-Stream-Analyzer.
- Automatisches Umschalten auf Backup bei Ausfällen oder Fehlern an der aktuellen Quelle.
- Zero Copy on Send (ZCoS) — reduziert die Betriebskosten für verbundene Clients, das gesamte Senden von Daten an den Client übernimmt der OS-Kernel.
- Unterstützung für „halb geschlossene“ HTTP-Clients.
- Empfang von UDP-Multicast, einschließlich RTP, gleichzeitig von verschiedenen Schnittstellen.
- Empfang über TCP-HTTP-GET (in einem Stream und Broadcast an mehrere Clients).
- Automatisches Trennen von Quellen, wenn keine Clients verbunden sind.
- Verwendung verschiedener TCP Congestion Control-Algorithmen, abhängig vom Port, auf den der Client verbunden ist, und der URL-Anfrage des Clients.
- „Intelligentes“ Senden von MPEG2-TS-Headern an neue Clients.
- Sofortige Übertragung von Daten aus dem Ringpuffer an neuen Clients, um die Wartezeit bis zum Beginn der Wiedergabe zu minimieren.
- Übertragung beliebiger zusätzlicher HTTP-Header in Anfragen und Antworten.
- Einstellungs-Templates für Stream Hub und Streaming-Quellen.
- Detaillierte Statistiken für jede TCP-Verbindung zur vereinfachten Fehlersuche auf der Netzwerkschicht.
Quelle: opennet.ru
