You are on page 1of 10

White Paper

VoddlerNet, peer-assisted video distribution

Voddler, VoddlerNet White Paper

Page 2 of 10

...deliver flawless video


to anyone, anywhere,
on any platform.

Executive Summary
Introduction

Solution

Voddler is a streaming technology company based in


Stockholm, Sweden. We develop VoddlerNet, a peer-assisted video distribution technology that scales positively
to all usage levels and delivers quality of service even at
low connection speeds.

VoddlerNet is a software based video delivery solution,


based on a peer-assisted video delivery solution, where
end users contribute by sharing parts of video assets
with other users in the network. Unlike unmanaged P2P
solutions, complete control over assets is retained by the
service provider, as end users have no direct access to
sharing functions or complete video assets.

VoddlerNet does all this at a fraction of proven normal


streaming costs, as benchmarked by our proof-of-concept
service.
Voddlers mission is to deliver quality streams to any device
on any connection. We offer VoddlerNet to content owners, Online Video Platforms (OVPs), solution providers and
infrastructure operators.

Goals
This document aims to explain how the VoddlerNet technology works, how it can help you address your problems
or improve your infrastructure with VoddlerNet and how
you can integrate VoddlerNet in your current infrastructure.

We therefore refer to VoddlerNet as controlled peering in


this document.

Voddler, VoddlerNet White Paper

Page 3 of 10

The Power.
Of Many.

Table of Contents
Executive Summary
Introduction

Goals

Solution

Section A: VoddlerNets Basic Concepts


The core principles of controlled peering for efficient data distribution

Make full use of existing decentralized resources...

... while still maintaining full security and central control

Node adjustments to optimize performance

Section B: Inside VoddlerNet

Client Software: The VoddlerNet Node Application

Framework

Storage

Database

Server Infrastructure

Publishing

Playback

Conclusion

10

Voddler, VoddlerNet White Paper

Page 4 of 10
VoddlerNet powered voddler.com, the pioneering Scandinavian video-on-demand (VOD) service that Voddler launched in 2010. During the
years that Voddler ran that service as a proof of
concept, VoddlerNet streamed over 18 million
movies internationally, with quality of service
and a benchmark of 95% savings on normal
streaming costs. This controlled peering-solution has been vetted and approved by leading
global film studios, including the Hollywood
majors.

Section A: VoddlerNets Basic Concepts


The core principles of controlled peering for efficient data
distribution.
VoddlerNets solution is a hybrid peer-assisted approach
that combines the cost advantage of peering with the
benefits of availability and capacity provided by hosted
content server solutions. Additionally, controlled peering
provides a higher QoS for end users due to VoddlerNets
ability to pick the optimal edge point to retrieve data from,
be that a VoddlerNet node or a CDN edge location.
Consider the following use cases to illustrate the underlying concepts:

User initiates streaming of a movie that is unavailable


on other nodes it might be a rarely watched movie, or a newly released movie. In a traditional P2P
setting, this content would be effectively dead. With
VoddlerNets hybrid peer-assisted approach, VoddlerNet would know that it needs to get the requested
content from a fallback server (CDN), and no disruption of service would be experienced.

User initiates streaming of a movie that is available


on just a few other nodes. In this case, VoddlerNet
will attempt to get the content from other nodes as
its first priority, but will actively evaluate whether or
not interconnected nodes are able to deliver data at
a sufficient speed to avoid buffering. If they are not,
fallback server (CDN) is used to avoid buffering.

Like with all peering solutions, as the number of users


increase, the available bandwidth also grows, increasing
VoddlerNets content retention and distribution capacity.
Unlike traditional P2P, however, VoddlerNet centrally controls addition of assets to the network and access control
is handled by the service provider. VoddlerNet thus combines the technical, legal and commercial aspects of both
content delivery networks (CDN) and peering technology.
It brings content storage and content distribution to the
end user level, normally the benefits of peering technologies, but never gives up central content control, the
hallmark of CDN-solutions. VoddlerNet can therefore also
be referred to as a hybrid peering-solution or controlled
peering. (figure 1)

VoddlerNet
server infrastructure

VoddlerNet
nodes

Content Delivery
Network

CDN

User initiates streaming of a movie that is fairly well


distributed. In this case, the user should be able to
fetch most if not all content from other nodes
in the network, and due to VoddlerNets intelligent
clustering logic (build clusters based on Internet proximity), as well as VoddlerNets ability to fetch content
from multiple points simultaneously, the end user will
be able to enjoy higher bitrates and a better QoS.
Figure 1 - hybrid peering-solution

Voddler, VoddlerNet White Paper

VoddlerNet is built up of the end users storage and


bandwidth, creating a decentralized resource network
the VoddlerNet network or VoddlerNet cloud. A small
installation on each consumer device makes the device
work like a small edge server. The installation is either
done by the consumer directly through downloading
the VoddlerNet client app, or as an integrated part of
a consumer-facing VOD app. Each VoddlerNet node
requests, stores, and distributes data to other nodes in
the network. Each asset in the network, typically a video,
is broken up into chunks or slices, which in turn are distributed among nodes depending on demand and route
efficiency. Each slice is allowed to exist on different nodes
at the same time, so that the receiving node can choose
the most optimal node from which to receive each slice.
As the node builds a repository of slices from requesting
content, VoddlerNets balancing algorithms will prioritize
which slices to retain based on the assets popularity,
rarity of specific slices, and the overall percentage of the
asset that is available in local storage. Unlike centrally
based solutions like CDNs, this mechanism ensures that
VoddlerNet grows stronger with every new consumer.
Simply put, the more people that stream via VoddlerNet,
the better transfer rates and QoS can be achieved. Just
as important, since the participating peers stream between each other, VoddlerNet also saves dramatically on
data costs for the operator.
VoddlerNet then, both scales to all conceivable levels
of data traffic, effectively future-proofing any streaming
solution that uses it, and reduces costs to a fraction
of todays levels. VoddlerNet has been designed to
interface seamlessly with existing streaming networks, allowing for easy integration with existing
server infrastructures and fall back to CDN-based
streaming for less popular content or in early rollout phases.

Page 5 of 10

Rights management and authorizing user access to content is the responsibility of the operator as would be the
case in any existing deployment. VoddlerNet will happily
work with any CDN access control schemes employed
by CDNs to secure content (such as URL signing mechanisms), as well as any existing Digital Rights Management
(DRM) protection. When it comes to storage security, it is
important to keep in mind that content is never stored in
full on any individual end-user device in the VoddlerNet
network.
VoddlerNet thus combines the best of two worlds; the
scalability and quality of service of decentralized and
distributed solutions with the reliability and availability of
CDN-based streaming solutions. Combined with strong
control mechanisms to negate the negative effects of
unmanaged P2P, the result is a unique, decentralized and
managed streaming solution.
Core to VoddlerNet is a constant striving to find the optimal balance between supply and demand.
VoddlerNet is always, in real time, balancing which data
to push and pull between nodes (Figure 2). For instance,
a popular title will spread more widely in the network, as
nodes push the content pieces to other nodes; and conversely, a less requested title stops populating across the
network and is slowly removed from the nodes.
Specific settings in the VoddlerNet network will guide
nodes in their communication. For instance, a network-wide closeness value, made up of ping time, ISP
and country, helps an individual node determine which
other nodes to communicate with. Each of these three
are given a weight value in percentage, where the total
has to be 100%. This makes it possible to, for instance,
give ISP the value 0% to completely ignore which data
network is being used to transport VoddlerNet slices.

... while still maintaining full security and central control


While the network itself is decentralized, like all P2P-networks, access to the network is centrally controlled for
both publishing and accessing content, unlike other
P2P-solutions. Content can thus only be made accessible by a central authority, making unauthorized publication into the VoddlerNet cloud impossible1. This also
simplifies deploying VoddlerNet to an existing streaming
environment, as it simply overlays already established origin- or playout severs. To further the central control, the
end-user can never access VoddlerNet content on their
devices, even though the VoddlerNet nodes live on them.

1
From a technical point of view, the VoddlerNet publishing
process accesses the asset from an established origin location, analyzes
and validates the file (or files), and creates table entries whereby assets
are broken down into specific byte ranges, or slices. This meta data is
passed to nodes when initiating playback so VoddlerNet knows where
and how to retrieve asset data.

Figure 2 - node balancing

Voddler, VoddlerNet White Paper

At start up, a node will find nearby nodes, a so called


alive list, which is determined by the closeness value,
in order to generate a cluster of selected nodes. It is to
this cluster that a node will turn to first when looking for
requested content. The node then continuously refreshes
the alive list, as long as the node is active.
Since VoddlerNet streams video in real time, its essential that slices arrive in order and in time. If a slice is not
found among the nodes of the network, which can be the
case for a newly released video, the requesting VoddlerNet node will then revert to the fallback server, which normally is the service providers existing edge location (the
endpoint could be a CDN or a load balancer for multiple
CDNs). The number of slices originating from fallback
determines the peering grade, VoddlerNets key performance indicator and a measure of how much of overall
traffic that took place between the nodes.
Another important network-wide parameter is the uplink
cap, which limits the upstream data that any given node
will contribute to the overall network traffic. This value
balances the need for widespread content distribution
among nodes with the need for minimal extra traffic for
the end-user.
By design, VoddlerNet is device agnostic and all Internet
connected devices are in theory potential VoddlerNet
nodes. In practice, however, the devices battery, storage
and connection capacity determines how efficient it can
be as a node. Initially, VoddlerNet only used strong devices as nodes, such as laptop and desktop computers
which can both receive, store and distribute data. Voddler
is rolling out the next incarnation of VoddlerNet, which
allows also weaker devices to connect to a VoddlerNet
network. For instance, a device with limited battery or
storage, or that is connected to a tel-co network and not
on Wi-Fi, will then be able to receive from other nodes,
but not have to store or distribute onwards. If the device
moves over to Wi-Fi or charges its battery, it can dynamically turn into a fully participating node. This flexibility
in the VoddlerNet solution allows for full multi-screen
deployment.

Page 6 of 10

Voddler, VoddlerNet White Paper

Page 7 of 10

Section B: Inside VoddlerNet


As a technical solution, VoddlerNet consists of three distinct parts:
1. Client software installed on end user equipment for
receiving and distributing content.
2. A centralized server infrastructure for tracking nodes
and distributing configuration to nodes.
3. A publishing system for enabling content on the VoddlerNet network.

Client Software: The VoddlerNet Node Application


The client software is the distributed part of VoddlerNet,
responsible for delivering data to requesting units with
excellent Quality of Service. The client will primarily try to
fetch data from other nodes in the network, but if required
to maintain QoS, it will fall back to CDN as part of VoddlerNets hybrid P2P approach.
The application is built on the C programming language,
a decision based on Voddlers desire to make the client
software portable, in addition to being lightweight, performant, well-managed from a memory footprint perspective,
as well as enabling access and great control over low
level APIs.
The portability means that the application can either be
integrated into an existing 3rd party app1 or serve as
standalone installed software on desktop environments.
The software has officially supported versions for Windows and Mac environments, and unofficial support for Li1
For instance, you could integrate with our VoddlerNet
Android SDK to make your existing Android app VoddlerNet enabled in effect making your Android apps nodes in the VoddlerNet network. Of course, the SDK comes with batteries included
for tweaking seeding/leeching parameters, storage capacity utilization, and much more, to ensure that your VoddlerNet integration
will be easy from an integration perspective and unobtrusive from
an end user perspective.

nux. The client software can be easily embedded in other


environments, such as Android/iOS applications through
shared library compilation.2
The client architecture consists of several loosely couplemodules that have distinct responsibilities:

Framework
The framework handles incoming and outgoing connections with peer nodes, sending and receiving VoddlerNet
protocol messages, and accessibility (such as port-mapping).
The framework is also responsible for supervising a dynamic set of submodules, for example:


The Scheduler module takes care of scheduling


various jobs like streaming, downloading, and serving
slices to other nodes.
The Bandwidth module calculates current upload/
download speed, latency, and open connections, to
help the scheduler maintain its resources.
The Pull module is responsible for the business logic
of pulling slices to the current node, and pushing slices to other nodes, as well as distributing meta data in
the cluster.
The Cluster Control module is responsible for maintaining live information about peer nodes, exchanging
lists of potentially active nodes, and pinging nodes for
actual confirmation.
The Middle Layer module is responsible for serving
streams to a recipient (player) consuming data from
VoddlerNet. Examples of supported protocols are
HTTP and RTMP.

2
The officially supported versions for both PC and Mac
have a minimal storage and memory footprint (~2 MB storage
required for base installation). System requirements are minimum
Windows XP for Windows, OSX 10.x for Mac, and capable of
at least 512kbps video playback. Stored slices are stored in C:\
ProgramData\VoddlerNet on Windows systems, in /Library/Application Support/VoddlerNet on OSX systems.

Voddler, VoddlerNet White Paper

Page 8 of 10

Storage

Publishing

The storage module is responsible for allocating local disk


space for incoming (pull) slices and outgoing (push) slices.
VoddlerNets balancing algorithms take care of determining whether or not to retain received slices for future requests depending on availability elsewhere in the network
and demand for the asset which the slice represents.
Retained slices can then be distributed to other nodes in
the network as they are requesting the same asset.

Making content available on VoddlerNet can be done


either through our publishing system web interface, or
through programmatic ingestion via our publishing system
REST API.
The process of publishing or making an asset available
on VoddlerNet can be summarized by the following
workflow for programmatic ingestion:
1. Gain access to the publishing system5 and generate an
API client through your account pages.

Database
The database module is used for persisting the VoddlerNet state between sessions.

2. Access the API through the Oauth2 client credentials


flow.

3. Post a request to the videos API, supplying necessary


data about the resource you wish to create (such as
video URL, return URL for post processing).

Server Infrastructure
VoddlerNets server infrastructure is responsible for tracking
nodes and distributing configuration.1

4. The publishing system will process your request and

generate a unique VoddlerNet identifier that you can use


to make subsequent API requests, or to integrate in your
own system. The VoddlerNet identifier is used in communication with the VoddlerNet client to initiate playback
of a specific asset. (Figure 3)

The infrastructure consists of a scalable cluster of servers


with different roles. To illustrate the responsibilities of the
different server types, the following use case provides an
overview of the communication between client and server
during different phases of the client lifetime2:
1. The newly activated node contacts the Seed Server to
obtain configuration data. Typical configuration data is
network settings (such as IP addresses for buddy and
discovery servers) and storage settings (such as the
percentage of an asset that is allowed to remain on an
individual node).

2. The client contacts a server node running the Discovery


Server role to register accessibility information, such as
if the node is behind a firewall or NATed.

3. The node contacts a server node running the Buddy

Server role to obtain an initial alive list of nearby nodes.

4. The node contacts other nodes in the obtained alive list


to build a more comprehensive alive list.

5. When a user initiates a stream or download, the node

retrieves slice 03 via CDN4. Subsequent slices are retrieved from other nodes if they are available and can be
delivered in a timely manner, or fallback if not.

VoddlerNets server infrastructure is maintained by Voddler. No


scaling or integration costs are incurred to our licensees.
2
Publishing process steps may differ a little depending on content type, the process involves a few additional steps for adaptive bitrate
(MPEG-DASH/HLS) content as it requires creation of playlist or manifest
files and handling potentially multiple segment files.
3
Slice 0 is a special meta data slice that is retrieved from
VoddlerNets meta data repository containing information on subsequent
content slices that comprises the entire asset. The size will vary a little
depending on the physical size of the asset, but will typically not exceed 1
KB.
4
Voddler uses Amazon S3 for storing meta data slices, and
Amazon CloudFront for serving them.

Figure 3 - Publishing flow sequence diagram

5
Access to the publishing system is granted by Voddler following
a signed license agreement for deploying VoddlerNet. Upon request, a
demo version is also available for due diligence and proof-of-concept
purposes.

Voddler, VoddlerNet White Paper

Once published, your asset is available for consumption


through VoddlerNet. Through the publishing system interface you will be able to monitor usage metrics through the
Stats interface. (Figure 4).
Playback
Having successfully published an asset to VoddlerNet,
assets can now be played through VoddlerNet-enabled
players by proxying requests through VoddlerNet in existing video player logic.
VoddlerNet supports multiple delivery mechanisms, such
as HTTP, RTMP and even raw byte streams for more
integrated solutions. Since VoddlerNet is at its core
data agnostic, adaptive bitrate protocols that utilize HTTP
(for instance MPEG-DASH and HLS) are supported.

Figure 4 - Publishing system statistics

Page 9 of 10

Voddler, VoddlerNet White Paper

Conclusion
VoddlerNet is the ideal partnering solution in scaling your
existing offering and market share growth objectives, by
seamlessly acting as an overlay and adjunct to serving
more content to greater demand. Particularly in those circumstances where your offering is impacted by constrained
networks, and in regions with poor or limited streaming
infrastructure, VoddlerNet delivers the most powerful and
dependable video content serving technology. By massively scaling to any demand, we ensure through our QoS
that your users needs will be served to the highest degree
possible in a transparent way.
Interested in learning more?
info@voddler.com

Page 10 of 10