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 la recuperación de paquetes y mantiene una latencia baja (predeterminada: 120 ms). SRT también admite el 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 mediante la utilización de métodos similares para conexión, números de secuencia, acuses de recibo y retransmisión de paquetes perdidos. Utiliza retransmisión selectiva e inmediata (basada en NAK).

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

  1. Latencia controlada, con transmisión de hora de origen (entrega de paquetes basada en marca de tiempo)
  2. Control relajado de la velocidad del remitente
  3. Caída condicional de paquetes "demasiado tarde" (evita el bloqueo del encabezado de línea causado por un paquete perdido que no se recuperó a tiempo)
  4. Retransmisión ansiosa de paquetes (informe NAK periódico)

encabezado del paquete

Los paquetes SRT se crean en la capa de aplicación y se entregan a la capa de transporte para su entrega. Cada unidad de medios SRT o datos de control creados 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, ésta optimiza el rendimiento del streaming. 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 cifrado de extremo a extremo con AES. [3] Al realizar retransmisiones, SRT solo intenta retransmitir paquetes durante un período de tiempo limitado según la latencia configurada por la aplicación. [4]

Según Marc Cymontkowski, arquitecto de SRT, además de enviar flujos de transporte MPEG a través de la Internet pública, 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 obtener la licencia bajo la Licencia pública de Mozilla el 22 de marzo de 2018. [7]

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

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

SRT fue diseñado para 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 de Internet individual, draft-sharabayko-mops-srt, [1] para su consideración al grupo de trabajo Media OPerationS (MOPS) del Internet Engineering Task Force .

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 más cambios 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 derivaron 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 pueden 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 con contraseña de usuario mientras se utiliza el mismo número de puerto de servicio para múltiples propósitos. [12]
  3. El mecanismo opcional de corrección de errores de reenvío .

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

Ver también

Notas

  1. ^ abc Los bits están ordenados 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 bits depende del medio.

Referencias

  1. ^ abc Sharabayko, diputado; Sharabayko, MA (2021). El protocolo SRT. IETF . Borrador de identificación-sharabayko-srt-01 . Consultado el 20 de octubre de 2023 .
  2. ^ "UDT: romper 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. ^ "Une todo: una entrevista con Marc Cymontkowski, evangelista de SRT". Blog de 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". Forónix.
  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 la mayoría de edad". Revista Formato Linux . N° 237.
  9. ^ a b C Marc Cymontkowski. "Por qué creamos SRT y la diferencia entre SRT y UDT".
  10. ^ "Documentos API de Haivision srt"
  11. ^ "Microsoft se une al proyecto de transmisión de código abierto SRT". El puente de transmisión . 17 de septiembre de 2018.
  12. ^ "Pautas de control de acceso SRT". GitHub . 7 de noviembre de 2019.
  13. ^ "Cinco 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