Kildene til msd (Multi Stream daemon)-prosjektet er konvertert til en BSD-lisens, og kildekoden er publisert på GitHub. Tidligere ble bare en forkortet versjon av msd_lite distribuert i kildekoden, og hovedproduktet var proprietært. I tillegg til å endre lisensen, ble portering til macOS-plattformen utført (FreeBSD og Linux ble tidligere støttet).
Msd-programmet er designet for å organisere IPTV-streaming på nettverket via HTTP-protokollen. Én server er i stand til å betjene flere tusen klienter samtidig. Hovedvekten legges på å oppnå maksimal ytelse, samt å gi finjustering som påvirker kvaliteten på kundens oppfatning av tjenesten: kanalbyttehastighet, motstand mot overføringsfeil. En-til-mange-proxying er implementert: data mottatt via én HTTP-tilkobling kan distribueres til mange tilkoblede klienter.
Funksjoner
- Støtte for IPv4- og IPv6-protokoller.
- MPEG2-TS Stream Analyzer.
- Automatisk bytting til reserven i fravær eller feil på gjeldende kilde.
- Zero Copy on Send (ZCoS) - reduserer overheaden for å betjene tilkoblede klienter, alt arbeidet med å sende data til klienten overtas av OS-kjernen.
- Støtte for "halvlukket" http-klienter.
- Mottar udp-multicast, inkludert rtp, samtidig fra forskjellige grensesnitt.
- Motta via tcp-http-get (i én strøm og kringkasting til mange klienter).
- Automatisk frakobling fra kilder hvis det ikke er tilkoblede klienter.
- Bruk av forskjellige TCP Congestion Control-algoritmer avhengig av porten som klienten kom til og URL-en til klientforespørselen
- "smart" sending av MPEG2-TS-hoder til nye klienter.
- Send øyeblikkelig data fra ringebufferen til en ny klient for å minimere ventetiden før avspilling starter.
- Sender eventuelle ekstra http-overskrifter i forespørsler og svar.
- Innstillingsmaler for Stream Hub og strømkilder.
- Detaljert statistikk for hver TCP-tilkobling, for å forenkle feilsøking på nettverksnivå.
Kilde: opennet.ru