Internet DRAFT - draft-huang-ppsp-p2p-webrtc-survey
draft-huang-ppsp-p2p-webrtc-survey
INTERNET-DRAFT R. Huang
Intended Status: Informational Huawei
Expires: August 18, 2014 Y. Zhang
CoolPad
February 14, 2014
Survey of WebRTC based P2P Streaming
draft-huang-ppsp-p2p-webrtc-survey-00
Abstract
This document presents a survey of current emerging WebRTC based P2P
streaming applications available on the nowadays Internet.
Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as
Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/1id-abstracts.html
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html
Copyright and License Notice
Copyright (c) 2014 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
<Huang&Zhang> Expires August 18, 2014 [Page 1]
INTERNET DRAFT Survey of WebRTC based P2P Streaming February 14, 2014
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3 Traditional P2P Streaming Applications on Browsers . . . . . . 4
4 WebRTC based P2P Applications . . . . . . . . . . . . . . . . . 5
4.1 Swarm CDN . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.2 PeerCDN . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.3 Sharefest . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.4 P2P Media Streaming with HTML5 and WebRTC . . . . . . . . . 8
5 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5.1 Incorporating P2P Streaming in RTCWEB Scenarios . . . . . . 9
5.2 Open Issues . . . . . . . . . . . . . . . . . . . . . . . . 9
6 Security Considerations . . . . . . . . . . . . . . . . . . . . 10
7 IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 10
8 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 10
9 References . . . . . . . . . . . . . . . . . . . . . . . . . . 10
9.1 Informative References . . . . . . . . . . . . . . . . . . 10
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 11
<Huang&Zhang> Expires August 18, 2014 [Page 2]
INTERNET DRAFT Survey of WebRTC based P2P Streaming February 14, 2014
1 Introduction
P2P streaming applications usually use standard or private P2P
protocol to deliver content between their end users. Some of them
uses specific desktop software as the client which end users have to
download and install in their OS. The others uses browsers as
clients, but users still need to download corresponding plug-ins to
enable the P2P transmission.
WebRTC is a new software architecture which enable web browsers with
Real Time Communication (RTC) capabilities via simple JavaScript
APIs. It provides direct interactive communications using audio,
video, etc. between two peers' web-browsers without any additional
plug-ins. Currently, WebRTC only focuses on conversational
applications such as VoIP and video conferencing, multimedia
streaming systems are not considered. However, the interests towards
WebRTC is strongly increasing. An ever-increasing number of P2P
applications have adopted WebRTC to distribute multimedia content or
file sharing from a source to a large number of endpoints only via
browsers without installing any plug-ins. This document presents a
survey of current emerging WebRTC based P2P streaming applications
available on the nowadays Internet.
the remainder of this document is organized as follows: Section 2
introduces terminology used throughout the survey; Section 3 provide
the analysis of how traditional P2P streaming applications on
browsers work; Section 4 presents current emerging WebRTC based P2P
streaming applications.
2 Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119].
Plug-in: a piece of software which enhances another software
application and usually cannot be run independently.
API: Application Programming Interface - a specification of a set of
calls and events, usually tied to a programming language or an
abstract formal specification such as WebIDL, with its defined
semantics.
Peer: A peer refers to a participant in a P2P streaming system that
not only receives streaming content, but also caches and forwards
streaming content to other participants.
Tracker: A tracker refers to a directory service that maintains a
<Huang&Zhang> Expires August 18, 2014 [Page 3]
INTERNET DRAFT Survey of WebRTC based P2P Streaming February 14, 2014
list of peers participating in a specific audio/video source or in
the distribution of a streaming file. A tracker answers queries
received from peers for the information of other peers sharing the
same streaming content. A tracker is a logical component which could
be centralized or distributed.
Tracker protocol: A signaling protocol between trackers and peers.
Peer protocol: A signaling and data protocol among the peers.
3 Traditional P2P Streaming Applications on Browsers
Some of traditional P2P streaming applications also allow their users
to obtain their content via browsers. The browsers are required to
install some plug-ins provided by these content providers firstly.
After that, the browsers of end users download and run specific
JavaScript application from content server. The JavaScript
application will act as a peer of P2P network to connect to a tracker
and get a list of available peers via tracker protocol. With the help
of plug-ins, the JavaScript application will then be able to
communicate with other peers exchanging content via standard or
private peer protocol.
+---------+ +---------+
| | | |
| web | | |
| | | Tracker |
| Server | | |
| | | |
+---------+ +---------+
| / \
| / \
| / \
HTTP/ | / \
WebSockets| / \
| /Tracker \ Tracker
| / Protocol \Protocol
| / \
| / \
| / \
| / \
| / \
+-----------++---+ +-----------+
|JS/HTML/CSS|| P | | |
+-----------+| l | Peer | |
+-----------+| u | Protocol | Seeders/ |
| || g +----------------+other Peers|
| || | | | |
<Huang&Zhang> Expires August 18, 2014 [Page 4]
INTERNET DRAFT Survey of WebRTC based P2P Streaming February 14, 2014
| Browser || i | | |
| || n | | |
+-----------++---+ +-----------+
Figure 1 Traditional P2P Streaming Applications on Browsers
Adobe's Flash Player is a typical example of such usage. It has
cooperated with many content providers, e.g. Sohu video, to support
P2P video streaming. It also provides APIs to help developers to be
able to use flash player to build various other P2P applications
right within the browsers. But the browsers of these users will be
required to install or update the plug-ins of Flash Player. Flash
Player has provided the ability of peer-to-peer communication since
version 10.1.
4 WebRTC based P2P Applications
WebRTC is a collection of technologies, including a media connection
protocol (which is RTP) that can be used to initiate sessions like
video conversation, a data exchange protocol that will enable users
to transfer data, e.g. chat or files, without the need for a third-
party server, and a way to access local resources, e.g. user's
microphone and video camera. WebRTC is created to facilitate
conversational communications from web browsers. However, it is not
the only usage WebRTC turns out to be. Recently, some innovative
applications and projects are using WebRTC technology on peer-to-peer
connections to accomplish tasks like streaming and sharing, instead
of relying on third-party plug-ins or proprietary software. They all
rely on WebRTC's data channel protocol, which is designed to allow
browsers to exchange data other than audio or video. Some of the
typical WebRTC based P2P applications are presented as follow, but
not exhaustive. Currently, the data channel protocol has been
implemented in Chromes as well as Firefox, which means that current
WebRTC based P2P applications are only supported in these two types
of browsers.
4.1 Swarm CDN
Swarm CDN is a new peer-to-peer browser based content delivery
network using WebRTC technology to save web site owners' money,
reduce their bandwidth and reduce server costs. Instead of hosting
the content on servers in data centers, Swarm CDN provides a way for
users to deliver content to other users on the same site without
installing any plug-ins.
Figure 2 demonstrates the rough architecture of this system.
<Huang&Zhang> Expires August 18, 2014 [Page 5]
INTERNET DRAFT Survey of WebRTC based P2P Streaming February 14, 2014
+---------+ +---------+
| | | |
| web | | |
| | | Tracker |
| Server | | |
| | | |
+---------+ +---------+
| / \
| / \
HTTP/ | / \
WebSockets| / \
| /Tracker \ Tracker
| / Protocol \Protocol
| / over HTTP \ over HTTP
| / \
| / \
+----------------+ +-----------+
|JS/HTML/CSS | |JS/HTML/CSS|
+----------------| +-----------+
+----------------| Data Channel +-----------+
| |----------------| |
| | | |
| Browser | | Browser |
| | | |
+----------------+ +-----------+
Figure 2 WebRTC based P2P Applications
Swarm CDN provides plug-ins to content providers or modifies their
sites' HTML code so that peers made up of the users's browsers will
be redirected to a centralized server which is called tracker in this
memo. As depicted from the above figure, after the web page is loaded
from the original web server, the peer will join the P2P network by
establishing a HTTP connection to the centralized server which holds
connections to a certain number of peers that have recently joined
the network. Afterwards, this HTTP connection is used to signal the
WebRTC handshake, resulting in a direct WebRTC data channel between
the newly joined client and one of the other clients that has the
content. For those users on a non compatible WebRTC browsers, the
tracker will detect this and default them to retrieve the requested
content from the original web servers.
Swarm CDN could provide service for video and images. Currently, it's
free and able to swarm video and images for 20 simultaneous users.
4.2 PeerCDN
PeerCDN helps web applications build a peer-to-peer content delivery
<Huang&Zhang> Expires August 18, 2014 [Page 6]
INTERNET DRAFT Survey of WebRTC based P2P Streaming February 14, 2014
network (CDN) that will make the web faster, more reliable, and help
sites to reduce bandwidth costs. The technology of PeerCDN is similar
to Swarm CDN, which uses WebRTC encrypted data channel for data
transmission. It also requires users to insert a single line of HTML
code to enable the usage without any browser plug-ins. Afterwards, a
web browser triggers a notification to the peerCDN's tracking server
that they are visiting the page. If someone else visits this page at
the same time, peerCDN automatically sets up a connection and quietly
streams the data between the peers. PeerCDN serves a site's static
assets, such as images, streaming videos and file downloads. It only
works on all WebRTC browsers.
PeerCDN was founded by Stanford engineering graduate in early 2013.
And Yahoo has bought this startup company in December of 2013.
4.3 Sharefest
Sharefest is a file sharing application developed by a video
streaming company called Peer5. Different from tools like Dropbox
transferring files to the remote server then back again, Sharefest
creates peer-to-peer communication between browsers directly using
WebRTC.
Figure 3 depicts the architecture of Sharefest.
+------------+
| Web Server |
+------------+
/ | \
/ | \
/ +------------+ \
/ | Browser | \
/ +------------+ \
/ * || * \
/ * || * \
/ * +------------+ * \
/ * |Sharefest | * \
/ * |Server | * \
/ * +------------+ * \
/ * // \\ * \
/ * // \\ * \
+------------+ +----------------+
| Browser |***************| Browser |
+------------+ +----------------+
---- Signaling
==== Sharefest tracker
protocol
**** Data channel
Figure 3 Architecture of Sharefest
<Huang&Zhang> Expires August 18, 2014 [Page 7]
INTERNET DRAFT Survey of WebRTC based P2P Streaming February 14, 2014
The Sharefest server presents an auto-generated short-URL for each
file shared by the client wishing to share. When a client browser
visits the URL, the server connects it to the sharing client's
browser and the sharing client's browser transfers the file over an
WebRTC data channel. If multiple clients connect from different
locations, the server attempts to pair nearby clients to each other
to maximize the overall throughput. Sharefest utilizes some simple
p2p technologies like slicing. It does its best to maximize
efficiency by dividing each file into slices that the downloading
peers exchange with each other.
Currently the size limit for shared files is around 1 GB and only the
recent versions of Chrome and Firefox are supported.
4.4 P2P Media Streaming with HTML5 and WebRTC
Some students from Aalto university have proposed an experimental
system for P2P VoD service applying WebRTC standards. The experiment
mirrors the BitTorrent architecture and the same entities - tracker,
seeder and peers - are used. Peers and seeders could be WebRTC
browsers. It can be seen in Figure 4.
+-----------------------------+
| |
| Tracker Server |
| |
| |
+-----------------------------+
| | |
| | |
| +--------------+ |
| | Seeder | |
| +--------------+ |
| * * |
| * * |
+------------+ +------------+
| Peer 1 |*****| Peer 2 |
+------------+ +------------+
---- Private tracker protocol
**** Data channel
Figure 4 Network Architecture for the P2P VoD service
with HTML5 and WebRTC
Initially users or content provides create a torrent file containing
the metadata of the video, hashes of each piece of the video and
uploads the torrent file to the tracker. Media content is uploaded to
<Huang&Zhang> Expires August 18, 2014 [Page 8]
INTERNET DRAFT Survey of WebRTC based P2P Streaming February 14, 2014
the seeder simultaneously. When a peer requests this content, it will
obtain the metadata from the tracker and start to download the
content slices from the seeder or original peer uploading the content
or both. As the content becomes popular, subsequent peers could get
the content from the nearby peers, which decrease the load on the
seeder and original peer uploading the content.
The experiment raises some considerations on this kind of
implementations. The main concern is that the performance of MD5 on
JavaScript and how much load could be handle in current solution
generated. It points out that the resources available through
browsers are much more limited than for native applications. The
calculation of MD5 hashes use too much CPU consumption which will
adversely affect the speed of getting content to play, especially for
mobile devices. This experiment also indicates that handling two
streams,incoming and outgoing, is manageable with current desktop and
mobile devices. Increasing peers number will severely degrade
performance and result in a bad user experience.
As the capability of computing for both desktop and mobile devices is
rapidly increasing, it can be anticipated that the above problems
will be eliminated soon.
5 Discussion
5.1 Incorporating P2P Streaming in RTCWEB Scenarios
As we have discussed in the above sections, there are more and more
efforts on enabling p2p streaming using WebRTC technologies.
According to the statistics of LTE usage in Verizon [Verizon], video
streaming traffic is accounting the largest part of the LTE traffic
and it slows down the wireless download speed by 20 percentages.
Using p2p streaming is an efficient means to solve the traffic
pressure not only in the core network, backbone but also in the air
interface especially when Device to Device mode (D2D) is deployed
between the browsers of end nodes, which is in the standardization
process in 3GPP. Although RTCWEB is created to facilitate JavaScript
APIs for real-time communication in the browser without implementing
any plug-ins, the current scope of RTCWEB only includes
conversational applications not streaming systems. We can see that
web applications supporting p2p streaming without plug-ins are more
and more appealing. So is it possible to incorporate P2P streaming in
RTCWEB scenarios so as to implement JavaScript APIs for P2P
algorithms as part of the WebRTC standardization process?
5.2 Open Issues
<Huang&Zhang> Expires August 18, 2014 [Page 9]
INTERNET DRAFT Survey of WebRTC based P2P Streaming February 14, 2014
Several open issues need to be addressed for the purpose described in
Section 5.1:
1. Do we need WebRTC to support P2P algorithms? If yes, how to
support?
2. Do we need WebRTC to support the tracker protocol? If yes, how to
support?
3. Do we need WebRTC to support the peer protocol? If yes, how to
support?
4. Is there any security problems?
6 Security Considerations
This document has no security concern.
7 IANA Considerations
This document has no actions for IANA.
8 Acknowledgments
TBD.
9 References
9.1 Informative References
[RFC6972] RFC 6972, "Problem Statement and Requirements of the Peer-
to-Peer Streaming Protocol (PPSP)"
[SwarmCDN] Swarm CDN web site, http://swarmcdn.com/
[PeerCDN] Peer CDN web site, https://peercdn.com/?
[Sharefest] Sharefest web site, http://www.sharefest.me/?
[PPMSHW] J. Nurminen, A. Meyn, et al., "P2P Media Streaming with
HTML5 and WebRTC", February 2013
[Verizon] http://www.fiercewireless.com/tech/story/verizon-spending-
millions-network-upgrades-counter-growth-video-traffic/2013-12-16
<Huang&Zhang> Expires August 18, 2014 [Page 10]
INTERNET DRAFT Survey of WebRTC based P2P Streaming February 14, 2014
Authors' Addresses
Rachel Huang
Huawei
Phone: +86-25-56623633
EMail: rachel.huang@huawei.com
Yunfei Zhang
Coolpad
EMail: hishigh@gmail.com
<Huang&Zhang> Expires August 18, 2014 [Page 11]