T E C H N I C A L O V E R V I E W [ D R A F T ]
Secure Reliable Transport Protocol
Derived from the UDP-based Data Transfer protocol, SRT is a user-level protocol that
retains most of the core concepts and mechanisms while introducing several
refinements and enhancements, including control packet modifications, improved flow
control for handling live streaming, enhanced congestion control, and a mechanism for
encrypting packets. This document describes the SRT protocol itself. A fully functional
reference implementation can be found at https://github.com/Haivision/srt.
Introduction
SRT is a transport protocol that enables the secure, reliable transport of data across
unpredictable networks, such as the Internet. While any data type can be transferred via SRT, it
is particularly optimized for audio/video streaming.
SRT can be applied to contribution and distribution endpoints as part of a video stream
workflow to deliver the best possible quality and lowest latency video at all times.
As packets are streamed from a source to a destination device, SRT detects and adapts to the
real-time network conditions between the two endpoints. SRT helps compensate for jitter and
bandwidth fluctuations due to congestion over noisy networks. Its error recovery mechanism
minimizes the packet loss typical of Internet connections. And SRT supports AES encryption for
end-to-end security.
SRT has its roots in the UDP-based Data Transfer (UDT) protocol. While UDT was designed for
high throughput file transmission over public networks, it does not do well with live video. SRT
is a significantly modified version that supports live video streaming.
Low latency video transmission across IP based networks typically takes the form of MPEG-TS
unicast or multicast streams using the UDP protocol. This solution is perfect for protected
networks, where any packet loss can be mitigated by enabling forward error correction (FEC).
Achieving the same low latency between sites in different cities, countries or even continents is
more challenging. While it is possible with satellite links or dedicated MPLS networks, these are
expensive solutions. The use of cheaper public internet connectivity, while less expensive,
imposes significant bandwidth overhead to achieve the necessary level of packet loss recovery.
Even though UDT was not designed for live streaming, its packet loss recovery mechanism
provided an interesting starting point. The original version of SRT included new packet
retransmission functionality that reacted immediately to packet loss to enable live streaming.
To achieve low latency streaming, SRT had to address timing issues. The characteristics of a
stream from a source network are completely changed by transmission over the public internet,
which introduces delays, jitter, and packet loss. This, in turn, leads to problems with decoding,
as the audio and video decoders do not receive packets at the expected times. The use of large
buffers helps, but latency is increased.
© 2018, Haivision 1 Last Updated: 17 October 2018