stringtranslate.com

Transporte seguro y confiable

Secure Reliable Transport ( SRT ) es un protocolo de transporte de vídeo de código abierto que utiliza el protocolo de transporte UDP . La especificación del protocolo SRT está disponible como borrador de Internet en el IETF . [1]

Descripción general

SRT proporciona conexión y control, transmisión confiable similar a TCP ; sin embargo, lo hace en la capa de aplicación , utilizando el protocolo UDP como capa de transporte subyacente. Admite recuperación de paquetes mientras mantiene baja latencia (predeterminado: 120 ms). SRT también admite cifrado mediante AES .

El protocolo se derivó del proyecto UDT [2] , que fue diseñado para la transmisión rápida de archivos. Proporcionó el mecanismo de confiabilidad al utilizar métodos similares para la conexión, los números de secuencia, los reconocimientos y la retransmisión de paquetes perdidos. Utiliza una retransmisión selectiva e inmediata (basada en NAK).

SRT agregó varias funciones además de eso para admitir el modo de transmisión en vivo:

  1. Latencia controlada, con transmisión de tiempo de origen (entrega de paquetes basada en marca de tiempo)
  2. Control relajado de la velocidad del transmisor
  3. Descarte condicional de paquetes "demasiado tarde" (evita el bloqueo de cabecera causado por un paquete perdido que no se recuperó a tiempo)
  4. Retransmisión de paquetes con gran entusiasmo (informe periódico NAK)

Encabezado del paquete

Los paquetes SRT se crean en la capa de aplicación y se entregan a la capa de transporte para su distribución. Cada unidad de medios SRT o datos de control creada por una aplicación comienza con el encabezado del paquete SRT. [1]

Paquete de datos

Los campos del encabezado son los siguientes:

Paquete de control

Los campos del encabezado son los siguientes:

Historia

Secure Reliable Transport es un protocolo de transporte de vídeo de código abierto desarrollado originalmente por Haivision. Según SRT Alliance , una organización que promueve la tecnología, optimiza el rendimiento de la transmisión. Esto ayuda a minimizar los efectos de la fluctuación y los cambios de ancho de banda, mientras que los mecanismos de corrección de errores ayudan a minimizar la pérdida de paquetes. SRT admite el cifrado de extremo a extremo con AES. [3] Al realizar retransmisiones, SRT solo intenta retransmitir paquetes durante una cantidad de tiempo limitada en función de la latencia configurada por la aplicación. [4]

Según Marc Cymontkowski, el arquitecto de SRT, además de enviar flujos de transporte MPEG a través de Internet público, también se utiliza para la conectividad IoT, el intercambio de metadatos, como protocolo de comunicación y para la entrega de datos sin comprimir. [5]

La implementación de referencia del protocolo se publicó originalmente bajo la Licencia Pública General Reducida versión 2.1, [6] pero se volvió a licenciar bajo la Licencia Pública de Mozilla el 22 de marzo de 2018. [7]

SRT es compatible con los marcos multimedia de software libre GStreamer , FFmpeg , OBS Studio y en el reproductor multimedia de software libre VLC . [4] [8]

El proyecto del Protocolo de Transferencia de Datos (UDT) basado en UDP ha sido la base del proyecto SRT. [9] La API C de SRT se basa en gran medida en el diseño de la API UDT [10].

SRT fue diseñado para la transmisión de video en vivo de baja latencia. [9] [3]

Haivision lanzó el protocolo SRT y la implementación de referencia como código abierto en el NAB Show 2017. [9]

En marzo de 2020, se presentó un borrador individual de Internet, draft-sharabayko-mops-srt, [1] para su consideración en el grupo de trabajo Media OPerationS (MOPS) del Grupo de trabajo de ingeniería de Internet .

Alianza SRT

SRT Alliance es una organización cuyos miembros desarrollan, utilizan y promueven el protocolo Secure Reliable Transport y el software basado en él. Los miembros fundadores de la alianza son Haivision y Wowza Streaming Engine . [11]

Implementaciones

Actualmente hay una implementación disponible, que es la biblioteca SRT de código abierto.

La API del lenguaje C se basa principalmente en la API UDT anterior, con cambios adicionales a medida que se agregan nuevas funciones. La API es muy similar a la de TCP.

SRT ofrece en realidad tres modos de trabajo, de los cuales los dos primeros se derivan de UDT:

La biblioteca SRT también ofrece estas características:

  1. Cifrado mediante una clave precompartida. El soporte de cifrado lo proporcionaba originalmente OpenSSL, pero ahora también se puede utilizar Nettle (GNU TLS) o mbedTLS.
  2. Las aplicaciones pueden utilizar el control de acceso SRT (también conocido como "StreamID") para identificar recursos y utilizar el método de acceso de usuario-contraseña mientras utilizan el mismo número de puerto de servicio para múltiples propósitos. [12]
  3. El mecanismo opcional de corrección de errores de avance .

Puede encontrar documentación más detallada en la documentación del código fuente.

Véase también

Notas

  1. ^ abc Los bits se ordenan del más significativo al menos significativo; el desplazamiento de bit 0 es el bit más significativo del primer octeto. Los octetos se transmiten en orden de red . El orden de transmisión de los bits depende del medio.

Referencias

  1. ^ abc Sharabayko, MP; Sharabayko, MA (2021). El protocolo SRT. IETF . ID draft-sharabayko-srt-01 . Consultado el 20 de octubre de 2023 .
  2. ^ "UDT: rompiendo el cuello de botella en la transferencia de datos". udt.sourceforge.io . Consultado el 27 de agosto de 2020 .
  3. ^ ab Haivision (26 de septiembre de 2021). "Transporte seguro y confiable". GitHub.
  4. ^ ab Olivier Crête (16 de febrero de 2018). "SRT en GStreamer".
  5. ^ "Todo se mantiene unido: entrevista con Marc Cymontkowski, evangelista de SRT". Blog Medialooks . 5 de noviembre de 2019.
  6. ^ Michael Larabel (24 de abril de 2017). "Protocolo de transporte de vídeo SRT de código abierto". Phoronix.
  7. ^ Roman rndi (22 de marzo de 2018). "Cambiar licencia a MPLv2.0 · Haivision/srt@a75d4c4". GitHub.
  8. ^ Olivier Crête (junio de 2018). "El vídeo seguro alcanza su madurez". Revista Linux Format . N.º 237.
  9. ^ abc Marc Cymontkowski. "Por qué creamos SRT y la diferencia entre SRT y UDT".
  10. ^ "Documentación de la API de Haivision srt"
  11. ^ "Microsoft se une al proyecto de transmisión de código abierto SRT". The Broadcast Bridge . 17 de septiembre de 2018.
  12. ^ "Directrices de control de acceso de SRT". GitHub . 7 de noviembre de 2019.
  13. ^ "5 razones por las que debería elegir RIST en lugar de SRT". Foro RIST . 27 de mayo de 2020. Consultado el 4 de diciembre de 2021 .

Enlaces externos