RIST bonding and Load-Sharing Demystified

People often have misconceptions about how RIST bonding and load sharing work.

·       Is that Cellular bonding? 

·       Is that load balancing? 

·       Is bonding the same as SMPTE2022-7 (Seamless Protection Switching)?

·       Where should one use these techniques and why should I care?

VideoFlow introduced bonding and load sharing techniques in 2012. These techniques were later offered to the RIST (Reliable Internet Stream Protocol) Activity group and were incorporated in RIST Simple Profile, published in September 2018 as VSF TR-06-1. This bonding and load sharing technique was demonstrated at VidTrans 2019 by using feeds from VideoFlow to Cobalt (see https://www.youtube.com/watch?v=LL1k_BBR3TU). A RIST receiver took links from France and Israel in bonded mode.

Let us start by explaining what we mean by bonding and load sharing. Both techniques are close relatives and built on top of RTP.  Bonding is done using a common RTP source and delivering it over more than one link or path. The original RTP stream is replicated across multiple interfaces/paths/ISP/delivery methods. Each stream may use different IP/UDP headers (IP Address + UDP Port), but must preserve the RTP header and payload.  All streams are sent to a common destination (receiver), which may have a single address/URL or multiple Interfaces. The destination will re-aggregate the different packets into a unified buffer.  RTP includes a sequence number and the packets are inserted into the buffer in accordance to their RTP sequence number.  When two packets have the same sequence number, the destination will just pick one of them – as they have the same content. This is the bonding technique adopted by SMPTE 2022-7.  RIST adds ARQ recovery techniques to provide additional protection. ARQ may be performed on any link. 

Load sharing is a mode of bonding.  Instead of sending a full copy of the stream over each link, the sender may split the packets across multiple interfaces/paths/ISP/delivery methods.  Each partial stream may change the IP/UDP headers (IP Address + UDP Port), but must preserve the RTP header and payload.  Similar to the bonding technique, the destination (receiver) uses a unified buffer where the RTP packets are inserted according to their RTP sequence numbers.  When a packet is lost, the receiver will use RIST ARQ, which may be performed on any of the links.  

Cellular bonding (from vendors like TVU, LiveU, AviWest and others) does have similarities with RIST bonding and load sharing, where the bonding device may use multiple cellular networks, possibly augmented with Wi-Fi , satellite and event WAN, transmitting to a common server.  Cellular bonding includes the ability to provide dynamic control the video source bit rate - this is why the picture quality may change in live transmission. Since load sharing only sends one copy of each packet, it uses less bandwidth.  Load sharing allows for less pressure on the Links, less data means less probability of a loss and congestion. 

Here are some uses cases:

·       Link fault recovery using load sharing:   on a link fault the sender may decide to divert the packets destined to the faulty link to the other available links.  

·       QoS service delivery: The user may select to send high priority services through a high SLA link, while directing the lower priority stream over a low SLA link. 

·       Keeping a hot standby: load sharing may be used to switch between interfaces for the sender and receiver. The switching between the interfaces will be clean and seamless.

Load balancing is a term used by IT professionals for two purposes:

·       Splitting the same task between multiple processing elements - this is a common practice in the public cloud. 

·       Link bonding is a technique to tie several interfaces to act as a virtual single interface; one of the underlined modes is ‘Load balancing’ that split the packet transmission between the physical interfaces.

These should not be confused with RIST bonding and load sharing.

Here is an example for bonding:

A TV Station would like to deliver a feed to a destination using one expensive link and one low cost link. A RIST device will transmit the stream on both the expensive and low cost links, any packet loss events on the expensive link can be recovered by the low cost link if the same packets were lost on both links; the ARQ technique will be used to recover the packets.

An example of load sharing:

A Venue with may want to use multiple links (WAN, Wi-Fi, Cellular) to send the local feeds back to the office with the highest quality and tier1 encoders without the need for Cellular bonding.  With RIST, you can do this without being locked to a single vendor – you have a choice between gateways that can connect your existing equipment, or you can choose encoders/decoders with RIST bonding and load sharing built-in.

Now, why should I care?

With the COVID19 pushing video contribution and production to the home office, the use of bonding and load sharing brings together any available Internet medium (Cable, ADSL, and Cellular).  With these techniques, one can create a low delay, reliable delivery solution to connect local devices (PTZ camera, sound, and even remote control) to the office.  The same multi-medium link can send and receive streams.   With RIST, you are in control of the latency/reliability tradeoff – the fact that you use multiple links does not mean that your end-to-end latency has to suffer.

About RIST:

RIST has been in development under the Video Services forum (VSF) since 2017. It combined technologies from many vendors and took into consideration use cases coming from industry partners. The technology is based on existing RFCs whenever possible and will be eventually submitted to SMPTE for consideration. To date there are two open specification documents available: TR-06-01 (for basic reliable streaming and error recovery) and TR-06-02 (adds tunneling, authentication and encryption options).  This brings RIST on par with many of the proprietary solutions.  

Unique RIST capabilities:

·       Bidirectional streaming over and encrypted tunnel using a single UDP port 

·       Null packet deletion 

·       Single UDP port supporting many clients

·       Load sharing and bonding

·       Reliable hitless switching (SMPTE 2022-7)

·       Hybrid of ARQ and FEC (SMPTE2022-1) reliable delivery

·       Encrypted multicast delivery

The open specification allows the user to understand the signaling and the reasons behind the protocol choices, making it easier to debug real-time scenarios. Many vendors already demonstrated their RIST implementations, and there are solutions running 24/7 services all over the globe.  The RIST protocol allowed each vendor to add his own special sauce to make the solution more robust and the user may find different implementations available, but all are interoperable.  Additionally, the libRIST open-source library has been recently released, allowing anyone to easily add RIST to their products.  

 

About the authors:

Adi Rozenberg is the CTO and Co-founder of VideoFlow.Ltd. Adi is a veteran of the industry and has been involved in encoding/decoding/streaming for many years. Adi Rozenberg is an active member of the RIST Activity group and a Director of the RIST Forum.  Adi donated one of his patents to the RIST community, which is the foundation of the bonding and load sharing. In parallel, VideoFlow joined the SRT alliance and integrated the SRT solution as well. A new VideoFlow Product, the DVG, includes interfaces to SRT, RIST, Zixi and VideoFlow proprietary protocols. This allows a unique vantage point on all the protocols.

Ciro Noronha, Ph.D., is the Executive VP of Engineering at Cobalt Digital.  Ciro has worked with compression and video transport for the last 25 years, and is also an active member of the RIST Activity Group, informally serving as the editor of the RIST Specifications.  Ciro is also the President of the RIST Forum.  Cobalt Digital makes a number of compression products (encoders and decoders) with built-in RIST support, including both bonding, load-sharing, and SMPTE-2022-7 seamless switching. 

Helen Weedon