An architecture for client virtualization: A case study
-
Upload
khangminh22 -
Category
Documents
-
view
0 -
download
0
Transcript of An architecture for client virtualization: A case study
Computer Networks 100 (2016) 75–89
Contents lists available at ScienceDirect
Computer Networks
journal homepage: www.elsevier.com/locate/comnet
An architecture for client virtualization: A case study
Syed Arefinul Haque
a , Salekul Islam
a , ∗, Md. Jahidul Islam
a ,Jean-Charles Grégoire
b
a United International University, Dhaka, Bangladeshb INRS-EMT, Montréal, Canada
a r t i c l e i n f o
Article history:
Received 30 November 2015
Revised 17 February 2016
Accepted 18 February 2016
Available online 26 February 2016
Keywords:
Edge cloud
P2P
BitTorrent
Virtual client
Cloud-based server
Web-RTC
a b s t r a c t
As edge clouds become more widespread, it is important to study their impact on tradi-
tional application architectures, most importantly the separation of the data and control
planes of traditional clients. We explore such impact using the virtualization of a Peer-
to-Peer (P2P) client as a case study. In this model, an end user accesses and controls the
virtual P2P client application using a web browser and all P2P application-related control
messages originate and terminate from the virtual P2P client deployed inside the remote
server. The web browser running on the user device only manages download and upload of
the P2P data packets. BitTorrent, as it is the most widely deployed P2P platform, is used to
validate the feasibility and study the performance of our approach. We introduce a proto-
type that has been deployed in public cloud infrastructures. We present simulation results
which show clear improvements in the use of user resources. Based on this experience we
derive lessons on the challenges and benefits from such edge cloud-based deployments.
© 2016 Elsevier B.V. All rights reserved.
1. Introduction
A new trend in service deployment in the Internet,
based on cloud computing and virtualization, shifts the lo-
cation of applications and infrastructures from the user de-
vice to the network to reduce the costs associated with
the management of hardware and software resources [1] .
In such systems, service providers can provide simplified
software installation, maintenance and update [2] . As cloud
technology has become more popular, we have seen the
emergence of edge clouds [3] , that is, datacenters de-
ployed by Internet access providers, in close proximity
to customers. With such facilities comes new opportuni-
ties to shift traditional computer based applications, which
could not otherwise have easily been virtualized because
∗ Corresponding author. Tel.: +880 1820182777.
E-mail addresses: [email protected] (S.A. Haque),
[email protected] (S. Islam), [email protected] (Md.J. Islam),
[email protected] (J.-C. Grégoire).
http://dx.doi.org/10.1016/j.comnet.2016.02.020
1389-1286/© 2016 Elsevier B.V. All rights reserved.
of their complex control plane, towards the cloud. Peer-
to-peer (P2P) applications would be an example of such
applications.
P2P networks are popular tools for content-sharing be-
cause they provide better scalability and fault tolerance
than the traditional client-server model of computing. A
P2P network can be described as a network of cooperat-
ing peers that work together to complete tasks and share
resources in the Internet. Such a network is composed
of numerous distributed, heterogeneous, autonomous, and
highly dynamic peers with which participants share a part
of their own resources such as processing power, stor-
age capacity, software, and content [4] . P2P networks have
no single point of failure and the network can grow and
shrink without sacrificing the functionality of the system.
Bandwidth utilization is better in such networks as the
peers communicate directly with each other rather than
through a hub which would present a bottleneck [5] .
P2P applications are often used for file sharing. One
example of a popular P2P file sharing application is
76 S.A. Haque et al. / Computer Networks 100 (2016) 75–89
BitTorrent. Large corporations like the Blizzard Inc. use P2P
systems to simultaneously distribute bandwidth-intensive
content to thousands of users without requiring major in-
frastructure investments [6] . On-demand media streaming
is another popular P2P application. PPTV [7] delivers video
content by streaming but peers can watch and share dif-
ferent parts of a video at the same time thus reducing
server load [8] . Distributed P2P file storage systems like
Freenet [9] anonymously publish, replicate and retrieve
data distributed among peers. Skype [10] is a P2P appli-
cation which enables voice and video calls over the Inter-
net to any other Skype user. P2P model can even be used
to virtualize physical objects and service construction pro-
cesses on smart spaces [11] . Several distributed scientific
projects like Seti@Home [12] use P2P public distributed
computing to share processing cycles. BitTorrent Sync [13]
is a recent addition to this paradigm that synchronizes files
between devices on a local network, or between remote
devices over the Internet.
For running such P2P applications a user normally has
to install a client application on her device. The single
most important task of these applications is to exchange
data between peers, but apart from that, they may also
perform routing/forwarding, content validation (e.g. hash
checking) and implement different mechanisms for effi-
cient bandwidth usage. As a result these client applications
consume various resources including processing power,
memory and bandwidth. Also, NAT traversal is an issue in
P2P applications as most of the peers usually do not have
globally routable IP addresses [14] . A local application re-
quires a prior installation and has to be regularly updated
for maintenance, which can be a burden for the user.
In this paper we explore how P2P applications bene-
fit from virtualization in an edge cloud environment and
study the architectural tradeoffs. For this process, we intro-
duce SimpleBit , a virtual terminal-based P2P client which
follows the BitTorrent protocol but is deployed on a re-
mote cloud server. This architecture was first introduced
in [15] , albeit very briefly. An end user accesses and con-
trols SimpleBit using a standard web browser, which re-
duces the requirements and the load on user devices by
offloading the control and session management tasks to
the remote server. We study two different architectures of
SimpleBit:
1. A P2P-type direct download architecture where the
files are downloaded directly from the peers to the
end user’s device.
2. A surrogate-based proxy downloader where the files
are first downloaded by the surrogate server and
then transferred to the end user’s device.
The rest of the paper is organized as follows: Section 2
briefly describes BitTorrent and discusses a detailed
overview of how the BitTorrent client works. Section 3
introduces and discusses virtualization. In Section 4 we
present the architecture of SimpleBit virtual P2P client.
We have designed two orthogonal models: SimpleBit with
proxy downloader is explained with its implementation
in Section 5 and SimpleBit with P2P download is pre-
sented with simulation results in Section 6 . In Section 7
we explain the lessons we have learnt on the challenges
and benefits from the edge cloud-based deployments. In
Section 8 we summarize and compare existing effort s that
are related to our work. Finally, Section 9 concludes the
paper.
2. Dissecting BitTorrent
BitTorrent is the most popular P2P application for dis-
tributing large size files. It is implemented as a hybrid P2P
system. Most of the interactions are done directly between
peers but initial and further occasional interactions with
a server are required for locating peers [16] . A user gets
the information about the peers using a meta-information
(metainfo) file (or metafile). The architecture of BitTorrent
is shown in Fig. 1 . It can be summarized in the following
points:
1. A peer willing to download a shared content has
to download the corresponding metafile from a web
server and uses it to identify a tracker for that con-
tent.
2. The peer contacts the tracker and requests a list of
peers that are already participating in the torrent
(i.e., sharing that content).
3. The tracker replies with a list of peers with their IP
address and access port.
4. The peer selects a number of peers from the list pro-
vided by the tracker and establishes a connection
with them.
5. When connections are established, the peer ex-
changes pieces of that file with the neighbors.
A set of peers using the same metafile to share a par-
ticular file are part of the same swarm . A tracker can in-
troduce the newly joined peer to multiple swarms at the
same time. A file is divided into fixed-size pieces and
peers exchange the pieces with each other. When a piece
is downloaded its SHA1 hash is computed and compared
with the value in the metafile. If the values match then
the piece is declared downloaded and made available for
downloading to other peers.
BitTorrent uses pipelining to keep the TCP connections
operating at full capacity [17] . For this reason each piece is
divided into many sub-pieces (usually 16 KB-sized) which
are called blocks or chunks. To reduce the load on seeders
(a peer who has access to the whole shared file) a peer
downloads pieces not only from the seeders, but also from
other peers (which are called leechers).
In this section, we have carefully studied the compo-
nents of the architecture of BitTorrent based on its speci-
fications [18] . Then we have arranged them into different
modules from a developer’s perspective. The modules are
identified as part of either data plane or control plane, or
both. We define the control plane as the part of the ar-
chitecture which is concerned with drawing up the net-
work map, or handling state oriented messages between
other peers or servers. Otherwise, the data plane is de-
fined as the part where the actual data is transferred be-
tween the participating peers. Implementation of a full Bit-
Torrent system can be divided into three distinct parts,
as follows.
S.A. Haque et al. / Computer Networks 100 (2016) 75–89 77
Fig. 1. BitTorrent’s file sharing process.
2.1. Metafile processor (control plane)
The Metafile processor is a module which is required
by both the tracker server and the client running in
each peer’s machine. A peer willing to publish or share
some content using the BitTorrent protocol has to create
a metafile holding the description of the content that is to
be shared along with contact information for the tracker
server. A peer willing to retrieve the same content using
the BitTorrent protocol must find the metafile and decode
it to start the download process. This file is encoded in a
special format called bencoding [18] . This module decodes
the bencoded file to extract useful information for other
modules. The metafile is structured as a dictionary with
the following keys and values:
• announce The URL of the torrent tracker;
• info An embedded dictionary with following keys:
− name Suggested name to download the file;
− piece length Number of bytes each piece of the
shared file is split into;
− length If the content is a single file it indicates the
size of the file in bytes;
− files If the content is composed of multiple files
it contains a dictionary with the length and the or-
dered sequence of the directories to save the files;
− pieces The SHA1 hash of the pieces for future ver-
ification of the integrity of the downloaded pieces.
2.2. Tracker communication module (control plane)
A peer willing to initiate P2P file sharing contacts the
tracker server through this module using the announce
key in the metafile. A tracker server is an HTTP server
which maintains a list of connected peers as well as in-
formation about the evolution of their status. It answers
to a peer’s requests for the addresses and ports of other
peers. To support efficient data sharing between clients, it
also tracks which fragment of that file each peer possesses.
To contact the tracker, this module must send a standard
HTTP GET Request with the following parameters [18] :
• info_hash A URL-encoded 20-byte SHA1 hash of the
value of the info key from the metafile.
• peer_id A 20-byte self-designated ID of the peer.
• port The port number the peer is listening to for in-
coming connections from other peers.
• uploaded The total amount of bytes that the peer has
uploaded in the swarm.
• downloaded The total amount of bytes that the peer
has downloaded from the swarm.
• left The amount of bytes that the peer needs in this
torrent to complete the download.
After receiving the HTTP GET Request , the tracker
responds with a document with the text/plain MIME
type. It contains a bencoded dictionary with the following
keys:
• failure reason A human readable string contain-
ing an error message with the reason for the failure if
the peer is unfit to join the swarm.
• complete The number of seeders (optional).
• incomplete The number of leechers (optional).
• peers A bencoded list of dictionaries containing a list
of peers. Each peer is a dictionary containing the keys
peer_id , ip and port .
78 S.A. Haque et al. / Computer Networks 100 (2016) 75–89
Each peer contacts the tracker typically every 30 min.
When a peer leaves the torrent, it informs the tracker
to have its name removed. If the peer leaves silently the
tracker automatically removes the peer after a predefined
period of time, following the last connection of the peer to
the tracker, i.e. a timeout [19] .
2.3. Peer-to-Peer communication module (data plane)
This module facilitates communications between two
peers. It handles creating and listening for peer hand-
shakes and connections. The information about the peers
is gathered from the tracker using the tracker communi-
cation module. Peer connections are established using the
TCP protocol to the appropriate host IP and port.
Handshaking. Before any data transfer two peers must es-
tablish a connection via a handshake . A handshake ex-
changes a string of bytes with the following structure:
• Protocol Name The name of the protocol in ASCII,
such as BitTorrent protocol . • Reserved Reserved for future extensions.
• Info Hash The SHA1 hash of the info value.
• Peer ID The self-designated peer_id .
Message Communication. Following the handshake both
ends of the TCP channel send messages to each other in
a completely asynchronous fashion. These messages have
two different types:
1. State-oriented Messages. These messages inform
peers of changes in the state of neighboring peers.
2. Data-oriented Messages. These messages handle re-
questing and sending of data.
A peer-to-peer message contains three fields: the
Message Length , the Message ID and the Payload [18] . In the following we briefly present some important
messages:
• interested Informs the peer that the sender peer
wants some pieces that the peer has.
• not interested Informs the peer that the sender
peer is not interested in any pieces that the peer has.
• have A message sent to all peers once the client has a
complete piece.
• bitfield A message only sent after the handshake is
completed to tell peers which pieces the client has.
• request A message sent to a peer indicating that
they would like to download a given piece. The pay-
load of the message has following fields namely index , block offset and length
• Piece The payload of this field has three fields namely
index , block offset and data (contains the bi-
nary data).
Additionally, the client sends keep-alive messages
to keep the connections open.
2.4. File handling module (data plane)
A file is split into smaller pieces which are of fixed size
and treated as binary data. Each piece can then be assigned
a hash code, which can be checked by the downloader for
data integrity. The most common piece sizes are 256 KB,
512 KB and 1 MB. The file handling module manipulates
raw binary data in the local storage. When the pieces of
the files start arriving at the client, the file handling mod-
ule temporarily stores them in the local file system. When
all the pieces of a single file have arrived, they are merged
into the desired file.
3. Virtualization
The idea of virtualization has evolved during the early
days of computing when the virtual systems in mainframes
[20] were designed. In general, the process of recreating a
(virtual) hardware or software environment by emulation
on top of a real system is called virtualization. The use
of virtualization is quite broad including network archi-
tecture virtualization, desktop virtualization, or client pro-
gram virtualization. The use of virtualization has emerged
due to the increased popularity of Cloud computing.
Note that virtualization of hardware and computing re-
sources is one of the fundamental building blocks of Cloud
computing [21] .
Virtualization in networking is mostly observed at the
network architectural level for hiding the underlying in-
frastructure network. For example, Cabo [22] presents a
high–level architecture for a flexible and extensible system
that supports multiple simultaneous network architectures
through network virtualization. Cabo identifies two differ-
ent entities: infrastructure providers (e.g. the ISPs) who
manage the substrate resources and service providers who
operate their own customized network inside the allocated
slices.
Desktop virtualization or virtual network computing
[23] can be achieved in a number of ways and with various
technologies, the most popular being Microsoft’s Remote
Desktop Protocol [24] or Citrix’s XenDesktop [25] . A virtual
desktop means in essence that applications run on a ma-
chine different from the user’s. The desktop is presented to
the user as an image of the one running remotely and local
keyboard and mouse are used to interact with it, in typi-
cal fashion. The virtual desktop server, located on a remote
platform, is responsible for on-demand application provi-
sioning, managing user settings and the running the Op-
erating System’s functions. The matching virtual desktop’s
image is rendered at the user’s platform through a virtual
desktop protocol. Since the user’s platform has no perma-
nent storage, the remote data center works as its virtual
storage.
With the aid of virtualization cloud computing dynam-
ically pools computing resources from a cluster of servers
[26] . Depending on the demand cloud computing dynam-
ically assigns and reassigns virtual resources. In the case
of the Infrastructure-as-a-Service (IaaS) model, a virtual-
ization layer, also known as the infrastructure layer uses
well-known virtualization technologies such as Xen, KVM
and VMware. Thus, a pool of storage and computing re-
sources are created by partitioning the underlying physical
resources.
Unlike virtualization of the whole operating system
or network architecture, virtualization could be used in
S.A. Haque et al. / Computer Networks 100 (2016) 75–89 79
Fig. 2. A generic architecture for virtual clients.
smaller levels at the client side applications. Fig. 2 presents
a generic architecture that facilitates client application vir-
tualization. Essential in this architecture is the existence of
a cloud-based server, which we shall call a surrogate , which
is meant to take most of the control load off the termi-
nal client. The surrogate deploys virtual client applications
and thus acts as a remote server for the user to access,
organize, provision and monitor their application’s control
plane related services.
By transferring most of the control plane’s complexity
to the surrogate, a simple user device with functionalities
restricted to operating the GUI and data transfer could be
used. Web-based GUIs are quite commonly used now for
virtual clients, say for email or desktop applications, and
most user-device platforms are equipped with at least one
and often several web browsers. The web browser is the
most commonly deployed software platform across com-
puting devices of all sizes and format available to develop-
ers today. Present cumulative industry growth projections
give us an estimation that there will be 20 billion Internet-
connected devices by 2020 [27] . Web browsers are getting
ever richer features every day and so are browser-based
applications. The type of platform, its manufacturer, or the
nature/revision of its operating system do not matter for
browser-based applications.
A surrogate implements a Web server, which receives
a user’s input through the GUI running on the web client
inside the user device. An interaction layer is needed
between the Web server and the virtual client for estab-
lishing communications between them. The virtual client
communicates with a regular client (e.g., in case of P2P
communications) or with a server (e.g., in case of a SIP
server). The existence of a surrogate is transparent to
the other regular clients/servers in the network, i.e., they
behave as if they were communicating with a traditional
client applications. Thus, all signaling or control plane
related activities will be originated and also terminated
at the virtual client. However, data plane activities will
be performed by the end user’s device. Such examples
include uploading/downloading files, video streaming, etc.
Note that the term surrogate was used previously to
demonstrate the idea of edge cloud , where a wide num-
ber of services including virtual IMS client [28] , virtual SIP
client edge cloud , transcoding [3] and content processing
[29] could be deployed. Following the same rationale, a
SimpleBit P2P client would be deployed in an edge cloud.
4. Virtual P2P client architecture
The functionalities of a P2P client can be broadly di-
vided into control plane and data plane. Note that these
functionalities will be implemented in two places, at the
user device and inside the surrogate. Depending on the lo-
cations where these functionalities are implemented two
orthogonal models may be developed, which are shown in
Fig. 3 . In this figure, we present two different SimpleBit
P2P client architectures: a proxy downloader model and a
pure P2P downloader model. These two models are illus-
trated in Fig. 3 a and b, respectively. Comparing these archi-
tectures will allow us to explore trade-offs in the location
of some functionalities.
We would like to mention that the proposed architec-
ture has been designed to be usable by any P2P proto-
col. Since BitTorrent is the dominant P2P protocol at this
stage, we describe in the following how our model can im-
plement a virtual P2P client. Note however that although
some parts of this description are BitTorrent-specific, this
model, with minor modifications could easily be adopted
to other and any future P2P protocols.
4.1. Proxy downloader model
We can offload both control and data planes activities
from the user device to the surrogate, with the great ben-
efit of reducing resource usage and implementation com-
plexities on the user side. Thus the surrogate acts as a
80 S.A. Haque et al. / Computer Networks 100 (2016) 75–89
Fig. 3. Virtual P2P client architecture of SimpleBit.
is further studied with a simulation model in Section 6 .
proxy for the user’s P2P client. In this model, different
pieces of a file will be downloaded to the surrogate, then
merged together to rebuild the file. Depending on the de-
vice, the whole file could incrementally be transferred to
the user as the pieces are received, or conversely be held
by the surrogate for a later, completed file transfer. We
designate this model as the SimpleBit with proxy down-
loader. This model is illustrated in Fig. 3 a. We can see
in the figure that data plane is included in the surrogate
server which completes all download activities and then
notifies the user device when download is completed. The
implementation details of this model have been described
in Section 5 , where the surrogate first completes the whole
download then provides a direct download link to the user.
4.2. Pure P2P downloader model
In the pure P2P downloader model, the data plane han-
dler is implemented inside the user device. The surrogate
is responsible for fetching the peer list from the tracker
server. This list is forwarded to the user device, which then
communicates with the peers. Thus, the client in the user
device directly receives the data pieces from other peers.
We designate this model as the SimpleBit with P2P down-
load. This model is illustrated in Fig. 3 b, where the data
plane handler is implemented inside the user device, but
the control plane-related activities are offloaded to the vir-
tual P2P client residing inside the surrogate. This model
S.A. Haque et al. / Computer Networks 100 (2016) 75–89 81
There are clear trade-offs in terms of server and client ex-
tra complexity and resource consumption to handle these
different scenarios, but they do not pose any specific
challenge.
4.3. Handling the functions of control and data planes
In the following we describe the different handlers,
which implement all functionalities of the control and data
planes. In case of BitTorrent type P2P applications, collect-
ing chunks of data from different peers and then merging
them to produce the whole file is challenging. Therefore,
we introduce here a storage handler, which is in general a
part of the data plane handler.
Control plane handler. The control plane handler is respon-
sible for registration, processing HTTP request/response
messages and interaction with the surrogate, the tracker
server and other peers. It consists of a metafile proces-
sor and the virtual P2P client running in the surrogate. It
replicates all the control plane functions of the existing ar-
chitecture, which include metafile translation, finding the
address and state of available peers from the tracker and
sending them to the peer device. Peers using the virtual
client also send their state oriented messages to the surro-
gate and the surrogate in turn sends them to the tracker
server.
Data plane handler. The data plane handler may act differ-
ently based on the model chosen for the virtualized P2P
client. In the case of the Proxy Downloader model, the
data plane handler will be deployed inside the surrogate.
In the P2P download model, the data plane handler would
be deployed in the web browser of the user device. The
data plane handler receives the list of active peers from
the control plane handler of the application. When it finds
a suitable peer with the required piece of data, it requests
that piece from the peer. It opens and maintains multiple
data connections from the peers. This is the most challeng-
ing module to be implemented in the end user device. We
will discuss this in the next sections.
Storage handler. The storage handler is a modified, en-
hanced downloader, which can download the data from
multiple peers and keep track of them. It can keep the
incremental chunks of the file in the local storage or in
the RAM. In the case that the accumulated size of the file
chunks exceeds the maximum allowable size in the lo-
cal storage or RAM (e.g., if the user device has very lim-
ited RAM), it can start writing them to a secondary stor-
age. When to write data to a secondary storage rather
than holding it in the local storage or RAM is a dy-
namic decision, typically based on user profile. An im-
plementation should carefully address the memory capa-
bility of a wide range of devices from PC to tiny cell
phones.
5. SimpleBit with proxy downloader
In this model the surrogate server acts as a proxy
downloader. The message sequence for this model is
shown in Fig. 4 . The different steps of this figure run as
follows:
1. A user would connect to the web server running in-
side the surrogate through a web browser. He pro-
vides the metafile or the magnet URI of the desired
file to the user interface.
2. The web server transfers the metafile to the virtual
P2P client running inside the same or a different
server. The virtual P2P client handles the control
plane activities on behalf of the user and creates
a session with the user. It communicates with the
tracker server requesting the peer list from the
active swarm.
3. The tracker responds to the virtual P2P client with
the peer list.
4. The virtual P2P client completes the handshakes
with the peers and finds the active ones.
5. The virtual P2P client requests the file pieces from
the active peers, and thus different pieces of a file
will be downloaded in the virtual P2P client.
6. The virtual P2P client periodically exchanges state-
oriented messages with the peers to keep them
aware of the availability of different pieces of the
file.
7. The virtual P2P client also sends keep-alive mes-
sages to the active peers to check if the opened peer
connections are alive.
8. The virtual P2P client sends state oriented messages
to the tracker server to keep the tracker updated of
the state of the user participating in the swarm.
9. After the last piece of the file has been downloaded
correctly, the surrogate merges them all to produce
the file, which will be written to the disk of the
server and the storage handler of the user device is
notified of the availability of the file.
10. When the file download is completed the user’s
browser window is notified of the completed down-
load and the link to the downloaded file is avail-
able as long as the user’s browser window is open.
It can even forward and store the downloaded file to
a user-designated cloud storage (e.g. Dropbox [30] )
using a suitable API .
5.1. Cloud implementation
We have implemented a SimpleBit proxy surrogate as a
NodeJS [31] web application. We have used ExpressJS [32] ,
which is a minimal and flexible NodeJS web application
framework that provides a robust set of features for web
and mobile applications and socket.io [33] which enables
real-time bidirectional event-based communication from
the server to the client. They provide a thin layer of funda-
mental web application features, without obscuring NodeJS
features that are being used in the back-end. We have de-
ployed the instances of this surrogate server in three dif-
ferent environments: in a desktop computer connected to
the Internet through a residential cable connection with
50 Mbps bandwidth, a Linode cloud platform [34] and an
Amazon EC2 cloud platform [35] .
82 S.A. Haque et al. / Computer Networks 100 (2016) 75–89
Fig. 4. Message Sequence of SimpleBit with the proxy downloader.
The surrogate server hosts an ExpressJS application in-
cluding the web-based user interface. The web server re-
ceives the user input through the GUI running on the web
client which is built using the Bootstrap [36] framework.
The user requests to download a file by entering a magnet
link in a form provided in the GUI through the web in-
terfaces. When the form is submitted a post request will
be submitted to the same route. After the post request is
validated a new page will be rendered where the down-
load links would appear. In the meanwhile, the virtual P2P
client running behind takes the magnet link as an input
and starts the proxy download.
We have borrowed the APIs provided by the WebTor-
rent [37] library of NodeJS to build the virtual P2P client.
It is currently in active development by open source com-
munities. It provides a simple torrent client module, using
TCP and UDP to talk to other normal torrent clients such
as BitTorrent, μTorrent, transmission or deluge. After a file
has been found in any swarm, it exposes it as a stream
and fetches pieces from the network on-demand. As soon
as the surrogate server finishes downloading a file using
the APIs provided by WebTorrent, a download link is sent
to the user who can download it directly to his device.
5.2. Performance analysis of the proxy downloader
As mentioned earlier, we have deployed instances
of our implementation in three different environments.
Table 1 shows different configuration parameters of these
environments.
To study the performance of these instances, we mea-
sure the average download time for files of different sizes.
In our implementation, we are saving two timestamps: the
start time of the download and the arrival time of the final
piece of the file. The download time for a file has been cal-
culated in seconds by taking the difference between these
two timestamps. The average download time is measured
by repeating the download ten times in a row. We use the
same torrent file for different instances and the download-
ing of a file has been started at the same time in three dif-
ferent instances. To observe the variations of these down-
load times, for a specific file download, we have calculated
the standard deviation over the ten download times we
recorded. Table 2 shows the average download time with
standard deviations for files of different sizes in three en-
vironments. Note the standard deviations have been pre-
sented in brackets.
Except for the case of the 19.5 MB file, the instances
running in the cloud outperform the local instance run-
ning in a desktop. Many factors including upload/download
bandwidth, aggregate bandwidth at the seed(s), number
of peers and seed(s), degree of nodes, finding rare pieces,
presence of high bandwidth peers, etc. influence the down-
load time of a file [38] . Since we started downloading
in different environments at the same time, many fac-
tors remained unchanged. However, available download
S.A. Haque et al. / Computer Networks 100 (2016) 75–89 83
Table 1
Configuration of different instances.
Instance Local desktop Linode Amazon EC2
Instance Type – Linode 1GB Tiny (t2.micro)
Processor 2.7 GHz Intel Core i5 Intel Xeon CPU E5-2680 v3 @ 2.50GHz Intel Xeon 2.5GHz
RAM 16 GB 1 GB 512 MB
Download Bandwidth 50 Mbps 125 Mbps (Approx.) 500 Mbps (Approx.)
Operating System Ubuntu Ubuntu Ubuntu
Location Boston, USA Newark, USA N. Virginia, USA
Table 2
Average download time with standard deviations in second.
File Size Local Desktop (s) Linode (s) Amazon EC2 (s)
8.9 MB 11 .24 (3.24) 6 .41 (2.57) 6 .17 (0.93)
19.5 MB 16 .53 (5.5) 17 .68 (6.87) 19 .85 (6.49)
43.5 MB 22 .68 (5.23) 13 .99 (4.99) 12 .25 (3.9)
71.0 MB 29 .36 (12.69) 17 .82 (13.13) 18 .37 (16.02)
86.1 MB 29 .77 (2.73) 10 .83 (1.57) 10 .98 (0.77)
bandwidths were higher in the cloud platforms and thus
reduced the overall average download time. However, it
should be noted that several factors can influence the
download time. More importantly, the factors we have
mentioned are dynamic in nature and may change within
a short period of time. As a result, we may experience sig-
nificant variations in download times if we consecutively
download the same file several times. If we observe the
standard deviations of average download times, we find
large variations in all three environments, as reflected in
Table 2 .
6. SimpleBit with P2P download
In the SimpleBit with P2P download model, most of
the control plane activities are offloaded to the surrogate
yet the data plane related activities are handled in the
user’s device in a P2P fashion. The message sequence of
this model is shown in Fig. 5 . The different steps of this
figure run as follow:
1. A user connects to the web server residing in the
surrogate through a web browser. There might be a
provision for user authentication. On successful au-
thentication, the end user uploads the metafile or
provides the magnet URI of the desired file to the
user interface running in the surrogate.
2. The surrogate transfers the metafile to the virtual
P2P client running inside the same or a different
server. The virtual P2P client communicates with the
tracker server requesting the peer list from the ac-
tive swarm.
3. The tracker responds to the surrogate with the peer
list.
4. The surrogate immediately returns the peer list (IP
addresses and port numbers of the active peers) to
the user device.
5. The data plane handler running in the user device
completes the initial handshaking with the active
peers.
6. The data plane handler requests the file pieces from
the active peers, and thus different pieces of a file
will be downloaded to the user device. The data
plane handler can simultaneously download and up-
load file pieces in a P2P fashion. The storage handler
in the user device keeps track of the pieces down-
loaded so far.
7. The data plane handler periodically exchanges state-
oriented messages with the peers to keep them
aware of the availability of different pieces of the
file.
8. The data plane handler also sends keep-alive mes-
sages to the active peers to check if the opened peer
connections are alive.
9. The data plane handler sends state oriented mes-
sages to the tracker server to keep the tracker up-
dated of the state of the user participating in the
swarm.
10. Finally, after the last piece has been downloaded
correctly, the storage handler will merge them all
to produce the whole file, which will be written
to the local disk of the user device. When the file
download is completed the user’s machine will seed
the file as long as the user’s browser window is
open.
6.1. Performance evaluation using discrete event simulation
The implementation of this model in a traditional web
browser is not possible using existing web standards. Pos-
sible modification in the browser or web standards re-
quired for the implementation of this model are discussed
in Section 7.2 . Thus, in the absence of such web stan-
dards we evaluate and compare the performance of a regu-
lar BitTorrent model and a modified tracker-free BitTorrent
model using discrete event simulation.
We use the ubiquitous discrete event simulator ns-2for our evaluation. Note that the goal of this simula-
tion is to compare the performance and resource uti-
lization of a regular BitTorrent client with a BitTorrent
client that performs only data plane activities. Therefore,
in this study, we compare the performance of a regular
BitTorrent model with a tracker free BitTorrent model, us-
ing the widely referenced ns-2 -based model presented
in [39] .
In the basic model, tracker functionalities are limited to
keeping track of the registered peers’ addresses and avail-
ability. The peers communicate with the tracker periodi-
cally to get the list of active peers for downloading the
file pieces. Besides, the tracker monitors the peer-to-peer
84 S.A. Haque et al. / Computer Networks 100 (2016) 75–89
Fig. 5. Message sequence of SimpleBit with P2P download.
Table 3
Simulation parameters and their values in our simulation.
Parameter Description Values(s)
file_size Size of the file being
shared
{50, 100, 200} MB
chunk_size Size of each chunk of
the file being shared
256 KB
Q_size Size of the queue at
each access link
25
C_up Upload bandwidth of
each peer
20 0 0 Kbps
C_down_fac Ratio of download
capacity over upload
capacity
8
num_of_seeds Number of initial seeds 1
num_of_peers Number of peers 100–1500
connections and availability of the peers. On the other
hand, in the tracker-free BitTorrent model, a peer does not
require any tracker communication or control plane related
activities; rather the peers’ addresses of the swarm are em-
bedded in the peer’s client. This model most closely mim-
ics the activities of a peer that only handles the data plane
related activities and leaves the control plane activities to
the surrogate.
Table 3 shows the important simulation parameters and
the values used in our simulation. For other parameters
and detailed information about the implementation proce-
dure, please refer to [39] .
6.2. Simulation procedure and results
We have performed our simulation on a 4 GB RAM,
Core- i 5, 2.7 GHz machine running Windows 7. As shown
in Table 3 , we vary the number of peers in the network
(from 100 to 1500) and the file size (50 MB, 100 MB, and
200 MB) to generate different scenarios. For each of these
scenarios, the other parameters such as the size of a sin-
gle file chunk (256 KB), number of initial seeds (1), up-
load bandwidth of each peer (20 0 0 KBps), etc., remain con-
stant. We model each of these random scenarios 30 times
and take the average value. Over the simulation period, we
record the download start and finish times of each peer,
and the download finish time of the entire swarm. Based
on these data, we evaluate and compare the performance
of a regular BitTorrent model with the tracker-free BitTor-
rent model in terms of average download finish time , upload
link utilization and download link utilization .
Average download finish time refers to the average time
needed by a peer to download the required file. We have
utilized the following formula for calculating the average
download finish time :
A v erage download f inish time =
∑ num _ of _ peers i =1
T i
num _ of _ peers
Here, T i is the download finish time for the i th peer. Next,
using the following equations we compute the upload link
utilization and the download link utilization considering all
S.A. Haque et al. / Computer Networks 100 (2016) 75–89 85
200
400
600
800
1000
1200
1400
1600
1800
0 200 400 600 800 1000 1200 1400 1600
Ave
rage
dow
nloa
d fin
ish
time
(mse
c)
num_of_peers
Tracker-free Bit-Torrent (200MB)Tracker-free Bit-Torrent (100MB)Tracker-free Bit-Torrent (50MB)
Regular Bit-Torrent (200MB)Regular Bit-Torrent (100MB)
Regular Bit-Torrent (50MB)
Fig. 6. Average download finish time of the swarm.
U
peers participated in the swarm:
pl oad l ink util ization
=
num _ of _ peers × f ile _ size × 1024 × 8
Swarm end time × C _ up × num _ of _ peers
Downl oad l ink util ization =
U pl oad l ink util ization
C _ down _ fac
Here, swarm end time is the time when all peers of
the swarm finish downloading the file. We multiply the
file_size by 1024 × 8 to convert the file size from MB to
Kb, since C_up has been given in Kbps. While calculating
the upload link utilization , we divide how much data has
been actually transferred during the swarm end time by
the aggregate bandwidths of the links. The download link
utilization has been calculated by dividing the upload link
utilization with the C_down_fac while all other parameters
remain unchanged.
0.4
0.5
0.6
0.7
0.8
0.9
1
0 200 400 600 8
Mea
n U
ploa
d U
tiliz
atio
n (%
)
num_o
Fig. 7. Upload link
We present comparative simulation results for regu-
lar BitTorrent and tracker-free BitTorrent by varying the
number of peers. The average download finish time shown
in Fig. 6 demonstrates that the modified tracker-free Bit-
Torrent model completes downloading quickly compared
to the regular BitTorrent model. The figure also demon-
strates that, predictably, the average download time in-
creases with the growth of the file size. Moreover, for a
specific file size, the average download time slightly in-
creases more or less linearly with the number of peers,
which reflects the increased latency before a transfer can
be initiated when a copy becomes available on a peer
whose link is not saturated.
We present the comparison of regular BitTorrent and
tracker-free BitTorrent for upload link utilization and down-
load link utilization in Figs. 7 and 8 , respectively. These two
figures illustrate that the bandwidth utilization is better in
the tracker-free BitTorrent model compared to the regular
00 1000 1200 1400 1600
f_peers
Tracker-free Bit-Torrent (200MB)Tracker-free Bit-Torrent (100MB)Tracker-free Bit-Torrent (50MB)
Regular Bit-Torrent (200MB)Regular Bit-Torrent (100MB)Regular Bit-Torrent (50MB)
utilization.
86 S.A. Haque et al. / Computer Networks 100 (2016) 75–89
0.04
0.06
0.08
0.1
0.12
0.14
0 200 400 600 800 1000 1200 1400 1600
Mea
n D
ownl
oad
Util
izat
ion
(%)
num_of_peers
Tracker-free BitTorrent (200MB)Tracker-free BitTorrent (100MB)Tracker-free BitTorrent (50MB)
Regular BitTorrent (200MB)Regular BitTorrent (100MB)Regular BitTorrent (50MB)
Fig. 8. Download link utilization.
BitTorrent model. Moreover, it can be observed that the
mean upload/download utilization decreases with the in-
crease of the number of peers, which is the dual of the
behavior observed in Fig. 6 . Observing the equation of the
upload link utilization , it can be found that all parameters
except the swarm end time remain unchanged. Therefore,
the upload link utilization is inversely proportional to the
swarm end time . Although we are not presenting the swarm
end time , during our simulation we have recorded this pa-
rameter and observed that it increases with the number of
peers. For example, for a 200 MB file size, in regular Bit-
torent client, for 100 and 1500 nodes, the swarm end times
are 1190 and 1400 msec, respectively. Note that this same
trend is observed in Fig. 6 where the average download fin-
ish time increases with the number of peers.
Thus, it is clearly shown that the removal of tracker
communication from the client reduces the time to fin-
ish and enhances the bandwidth utilization in the swarm.
Therefore, we can conclude that segregating the control
plane and placing it in a surrogate server would increase
overall performance of the P2P client from both the users’
and swarm’s perspective.
7. Lessons learned
We draw here some lessons from our work, on the ben-
efits of the architecture, and the challenges of its imple-
mentation.
7.1. Benefits of the virtual P2P model
In the following we summarize some of the key bene-
fits of the proposed model.
1. No installation hassle : To use a traditional BitTor-
rent client the user needs to install some software.
A wide selection of client software is available now,
with some good enough and quite simple but the
user needs to understand the basic working princi-
ples of BitTorrent and have some skills in network
configuration (routers, firewalls etc.) to make it work
effectively. However, a virtual P2P client does not re-
quire any installation.
2. Operability in restricted environments : A P2P
client program could not be installable on the user’s
terminal due to various reasons such as organi-
zational policy, licensing issues or platform sup-
port. In such a restricted environment, the proposed
model works without any difficulty through web-
based clients.
3. Location independence : As cloud infrastructures
are off-site (typically provided by a third-party) and
accessed via the Internet, users can connect to the
virtual P2P client from anywhere. Moreover, it will
be possible to access P2P services from behind the
firewall. Still, we need to further study in the fu-
ture how virtual P2P clients could be accessed be-
hind their firewall or the case of NAT traversal and
its impact on end-to-end data transfer.
4. Simpler maintenance : P2P applications and proto-
cols are still evolving. To implement the most ef-
ficient method of content sharing a P2P client ap-
plication requires frequent updates. In the case of a
virtual P2P client implementation, any update in the
protocol or application can be easily maintained on
the surrogate. The client does not have to update or
modify anything locally.
5. Network access mobility : The virtual P2P client ar-
chitecture decouples a swarm from the user termi-
nal while the surrogate maintains swarm-related in-
formation. Hence, a terminal could be switched off
without disrupting or restarting the swarm. A user
could change her access network seamlessly, say due
to the availability of a faster or cheaper access net-
work.
6. NAT traversal : In traditional BitTorrent applications,
two peers behind the NAT cannot directly commu-
nicate with each other. In our proposed model, the
virtual P2P client is running in a public server and
S.A. Haque et al. / Computer Networks 100 (2016) 75–89 87
thus can facilitate hole-punching [40] for NAT traver-
sal between the peers. To do so it can first ask for
the public and private endpoints of the peers and
provide the user’s end points to them. The peers can
then negotiate with each other for hole-punching. As
a result the user device can reach more peers, re-
sulting in a higher download speed.
7.2. Implementation challenges
Implementing a BitTorrent application in a web-
browser requires a few modifications in the BitTorrent pro-
tocol and the web browser standards as well. Traditional
browsers have some limitations to deploy peer-to-peer ap-
plications. We discuss the possible modifications to web
browser standard and BitTorrent protocol in the following.
Bidirectional connections in a browser. Existing BitTorrent
applications use the BitTorrent protocol in the applica-
tion layer and open a bidirectional TCP connection with
each of the peers. However, a browser does not natively
“speak” the BitTorrent protocol. The WebSocket protocol
[41] allows two-way communications which can be initi-
ated from the browser, with the server [27] . It can be used
to tunnel BitTorrent messages, as well as the keep-alive
messages.
Data exchanges between peers can further be facili-
tated with WebRTC, which is now available in mainstream
browsers like Chrome, Firefox and Opera [42] .
BitTorrent messages over HTTP/WebRTC. The BitTorrent pro-
tocol has its own defined headers and payloads. A
browser-based implementation can only communicate us-
ing the HTTP/WebRTC protocol suite. However, a browser
based client can be designed using the HTTP/WebRTC
protocol where the payloads will be the BitTorrent
messages (both state-oriented and data-oriented). These
types of clients can only communicate with peers that
are using similar browser-based clients. To communi-
cate with both browser based and traditional BitTor-
rent clients, hybrid clients could be designed. The hy-
brid clients may have a module that would be able to
parse HTTP/WebRTC requests from browser based clients
with BitTorrent protocol oriented messages in the pay-
load; along with the ability to communicate with tradi-
tional BitTorrent clients using the BitTorrent protocol. It
will then be able to seed and leech to either type of
implementations.
Downloading pieces from forwarded IP addresses. Because
of the same-origin policy, the web browser enforces con-
straints on which requests can be initiated by the ap-
plication and to which content originator. As a result,
when the IP forwarder returns with the IP addresses of
the peers to connect to, it cannot initiate a connection
to the peer which has an origin outside of the domain
of the initial remote server. However, implementation of
peer-to-peer applications requires bidirectional communi-
cation between multiple peers. It can be solved using
Cross-Origin Resource Sharing (CORS) [27] , which provides
a secure opt-in mechanism for client-side cross-origin
requests.
8. Existing work
In the following, existing bodies of work related to our
goal are summarized, as well as their limitations. It is to be
noted that not a single one of them could fully implement
our architecture.
8.1. Java plugin based implementations
BitLet [43] is a browser-based BitTorrent client that
runs on any browser that supports the Java Plugin (version
1.5 or newer). Note that using a Java based plugin has its
pitfalls. The Java Runtime Environment (JRE) has to be in-
stalled on the system. If a plugin requires a newer than, or
a version of the JRE more specific than the one available on
the system, the user may need for an update to complete,
or be left unable to run the plugin. Most importantly, a
significant portion of mobile devices e.g. PDAs (Blackberry,
Palm), tablets (iPad, Android, Windows Surface RT), smart
phones (iPhone, Android), gaming consoles (Nintendo Wii)
do not support java plugins at all [44] , thus this model has
become obsolete.
8.2. Cloud-based, pre-downloaded P2P file retrieval system
Some on-demand cloud-based P2P direct downloader
applications such as ZbigZ [45] , put.io [46] and CloudTor-
rent [47] first complete the download of the whole file
on their server. Then the latter provides the end user
with a download link or keeps the file in the user’s
cloud storage from where the user can directly down-
load the file in a client-server method. Such systems keep
the user identity and activity for downloading the file
anonymous to other peers as the user only downloads
the pre-downloaded file from the cloud. However, these
systems violate an important dimension of P2P systems
through unnecessary redundancy and wastage of resource
by downloading a single file twice and also storing it in the
cloud.
Still, a platform such as ZbigZ is close to our con-
cerns and its existence shows the benefits in our work.
Unfortunately, they have not disclosed their architec-
ture and we cannot directly compare our approach to
theirs.
8.3. WebTorrent
WebTorrent [37] , a work in progress project, is focused
on developing a browser-based BitTorrent client. The ob-
jective of WebTorrent is to build a browser-based Bit-
Torrent client which requires no installation (no plugin
or extension) and has the ability to communicate with
the traditional BitTorrent network. It is based on We-
bRTC data channels [42] for peer-to-peer transport. The
web-based clients using the JS file supplied by WebTor-
rent can only download from other Web-based clients un-
til mainstream BitTorrent clients support WebTorrent. Our
proposed model separates the control plane and the data
plane of the BitTorrent client and only the data plane re-
lated activities are delegated to the end host to reduce
88 S.A. Haque et al. / Computer Networks 100 (2016) 75–89
complexity. On the other hand, in WebTorrent, all the ac-
tivities of a BitTorrent client are mimicked in the user de-
vice using WebRTC and there is no notion of a virtual P2P
client.
9. Conclusion
We have presented a scheme to virtualize P2P clients,
using BitTorrent as a case study. The main point of this
scheme is to reduce the load on user devices, but it also
supports mobility and facilitates inter-networking. We use
the ubiquitous browser to implement the user interface of
the virtual client. It uses a combination of JavaScript pro-
gramming combined with Web Services based communi-
cations between browser and server, as well as between
peers.
In future work, we would like to explore the full po-
tential of using WebRTC to implement this model. We also
plan to better study the trade-off between execution of
functions between the browser and the server, as well as
investigate better ways to facilitate inter-operations with
“traditional” P2P clients.
References
[1] L.M. Vaquero , L. Rodero-Merino , J. Caceres , M. Lindner , A break in the clouds: towards a cloud definition, ACM SIGCOMM Comput.
Commun. Rev. 39 (1) (2008) 50–55 . [2] M. Armbrust , A. Fox , R. Griffith , A.D. Joseph , R. Katz , A. Konwinski ,
G. Lee , D. Patterson , A. Rabkin , I. Stoica , et al. , A view of cloud com-
puting, Commun. ACM 53 (4) (2010) 50–58 . [3] S. Islam , J.-C. Grégoire , Giving users an edge: A flexible cloud model
and its application for multimedia, Future Gener. Comput. Syst. 28 (6) (2012) 823–832 .
[4] B. Pourebrahimi , K. Bertels , S. Vassiliadis , A survey of peer-to-peer networks, in: Proceedings of the 16th Annual Workshop on Circuits,
Systems and Signal Processing, ProRisc, 2005, Citeseer, 2005 .
[5] C. Muoh, A Tutorial on Gnutella, Bittorrent and Freenet Protocol, 2006. http://medianet.kent.edu/surveys/IAD06S-
P2PArchitectures-chibuike/P2P%20App.%20Survey%20Paper.htm
(accessed 01.02.16).
[6] T. Karagiannis , P. Rodriguez , K. Papagiannaki , Should internet service providers fear peer-assisted content distribution? in: Proceedings of
the 5th ACM SIGCOMM Conference on Internet Measurement, 2005,
p. 6 . [7] PPTV, 2015. URL http://www.pptv.com/ (accessed 01.02.16).
[8] Y. Huang , T.Z. Fu , D.-M. Chiu , J. Lui , C. Huang , Challenges, designand analysis of a large-scale p2p-vod system, in: Proceedings of ACM
SIGCOMM Computer Communication Review, 38, 2008, pp. 375–388 . [9] Freenet, 2015. URL https://freenetproject.org/ (accessed 01.02.16).
[10] Skype, Free Calls to Friends and Family, 2015. last accessed: July
2015. URL http://www.skype.com/ . [11] D. Korzun , S. Balandin , A peer-to-peer model for virtualization and
knowledge sharing in smart spaces, in: Proceedings of 8th Interna- tional Conference on Mobile Ubiquitous Computing, Systems, Ser-
vices and Technologies, 2014, pp. 87–92 . [12] SETI@Home, 2015. URL http://setiathome.ssl.berkeley.edu/ (accessed
01.02.16).
[13] BitTorrent Sync, 2015. URL http://getsync.com/ (accessed 01.02.16). [14] B. Ford , P. Srisuresh , D. Kegel , Peer-to-peer communication across
network address translators, in: USENIX Annual Technical Confer- ence, 2005, pp. 179–192 .
[15] S. Haque , S. Islam , J.-C. Grégoire , Short paper: ‘Virtual P2P client: ac- cessing P2P applications using virtual terminals’, in: Proceedings of
2015 18th International Conference on Intelligence in Next Genera- tion Networks (ICIN), 2015, pp. 142–144 .
[16] R.L. Xia , J.K. Muppala , A survey of BitTorrent performance, Commun.
Surv. Tutorials, IEEE 12 (2) (2010) 140–158 . [17] B. Cohen , Incentives build robustness in BitTorrent, in: Proceedings
of Workshop on Economics of Peer-to-Peer systems, 6, 2003, pp. 68–72 .
[18] B. Cohen, The BitTorrent Protocol Specification, 2008, [19] S.L. Blond , A. Legout , W. Dabbous , Pushing BitTorrent locality to the
limit, Comput. Netw. 55 (3) (2011) 541–557 . [20] S. Nanda, T.c. Chiueh, A Survey on Virtualization Technologies, Tech-
nical report, 2005 . Available: URL http://www.ecsl.cs.sunysb.edu/tr/ TR179.pdf (accessed 01.02.16).
[21] L.M. Vaquero , L. Rodero-Merino , J. Caceres , M. Lindner , A break in
the clouds: towards a cloud definition, SIGCOMM Comput. Commun. Rev. 39 (1) (2008) 50–55 .
[22] N. Feamster , L. Gao , J. Rexford , How to lease the Internet in yourspare time, ACM SIGCOMM Comput. Commun. Rev. 37 (1) (2007)
61–64 . [23] T. Richardson , Q. Stafford-Fraser , K.R. Wood , A. Hopper , Virtual net-
work computing, IEEE Int. Comput. 2 (1) (1998) 33–38 . [24] Remote Desktop Protocol, 2015, Available: URL http://msdn.
microsoft.com/en-us/library/aa383015(VS.85).aspx (accessed
01.02.16). [25] Citrix System, 2015. Available: URL http://www.citrix.com/ (accessed
01.02.16). [26] Q. Zhang , L. Cheng , R. Boutaba , Cloud computing: state-of-the-art
and research challenges, J. Int. Serv. Appl. 1 (1) (2010) 7–18 . [27] I. Grigorik , High Performance Browser Networking: What Every
Web Developer Should Know about Networking and Browser Perfor-
mance, O’Reilly Media, Incorporated, 2013 . [28] S. Islam , J.-C. Grégoire , Converged access of IMS and web services: a
virtual client model, Netw., IEEE 27 (1) (2013) 37–44 . [29] S. Islam , J.-C. Grégoire , Beyond CDN: Content Processing at the Edge
of the Cloud, John Wiley & Sons, Inc., 2014, pp. pp.243–258 . [30] Dropbox, 2015. URL https://www.dropbox.com/ (accessed 01.02.16).
[31] NodeJS, 2015. URL https://nodejs.org/ (accessed 01.02.16).
[32] ExpressJS, 2015. URL http://expressjs.com/ (accessed 01.02.16). [33] socket.io, 2015. URL http://socket.io/ (accessed 01.02.16).
[34] Linode, 2016. URL https://www.linode.com/ (accessed 01.02.16). [35] Amazon EC2, 2015. URL http://aws.amazon.com/ec2/ (accessed
01.02.16). [36] Twitter Bootstrap, 2015. URL http://getbootstrap.com/ (accessed
01.02.16).
[37] Webtorrent, Streaming Torrent Client for Node and The Browser, 2015. URL https://github.com/feross/webtorrent/ (accessed 01.02.16).
[38] A. Bharambe , C. Herley , V. Padmanabhan , Analyzing and improving a bittorrent networks performance mechanisms, in: Proceedings of
25th IEEE International Conference on Computer Communications, INFOCOM 2006, 2006, pp. 1–12 .
[39] K. Eger , T. Hoßfeld , A. Binzenhöfer , G. Kunzmann , Efficient simula-
tion of large-scale P2P networks: packet-level vs. flow-level simula- tions, in: Proceedings of the Second Workshop on Use of P2P, GRID
and Agents for the Development of Content Networks, ACM, 2007, pp. 9–16 .
[40] D. Maier , O. Haase , J. Wasch , M. Waldvogel , NAT hole punching re-visited, in: Proceedings of 36th IEEE Conference on Local Computer
Networks (LCN), 2011, pp. 147–150 .
[41] I. Fette, A. Melnikov, The Websocket Protocol, RFC 6455, 2011, [42] WebRTC, 2015. URL http://www.webrtc.org/ (accessed 01.02.16).
[43] Bitlet, 2015. URL http://www.bitlet.org/ (accessed 01.02.16). [44] Availability of Java Plugin in Mobile Devices, 2015. URL http://www.
java.com/en/download/faq/java _ mobile.xml (accessed 01.02.16). [45] ZbigZ, 2015. URL http://www.zbigz.com/ (accessed 01.02.16).
[46] put.io, Hassle-Free Torrenting in The Cloud, 2015. URL https://put.io/ (accessed 01.02.16).
[47] I. Kelenyi , A. Ludanyi , J.K. Nurminen , BitTorrent on mobile phones-
energy efficiency of a distributed proxy solution, in: Proceedings of IEEE Green Computing Conference, 2010, pp. 451–458 .
Syed Arefinul Haque completed Bachelors in
Business Administration from the Institute of Business Administration (IBA), University of
Dhaka. He completed his Master’s in Computer Science and Engineering from United Interna-
tional University (UIU) in 2015. His thesis was
in peer-to-peer (P2P) networks. He is currently employed in a software company where he is
establishing a liaison between business pro- cesses and intelligent software.
S.A. Haque et al. / Computer Networks 100 (2016) 75–89 89
Salekul Islam is an Associate Professor and
Head of the Computer Science and Engineering(CSE) Department of United International Uni-
versity (UIU), Bangladesh. Earlier, from 2008 to
2011, he worked as an FQRNT Postdoctoral Fel-low at the Énergie, Matériaux et Télécommu-
nications (EMT) center of Institut national dela recherche scientifique (INRS), Montréal. He
completed his PhD in 2008 from Computer Sci-ence and Software Engineering Department of
Concordia University, Canada. His present re-
search interests are in Cloud computing, virtu-alization, future Internet and analysis of secu-
rity protocols. He also carried out research in IP multicast especially inthe area of security issues of multicasting.
Md. Jahidul Islam a PhD student at the depart-ment of CSE, University of Minnesota (UMN)-
Twin Cities. He has completed undergraduate
(B.Sc.) and postgraduate (M.Sc.) studies fromBangladesh University of Engineering and Tech-
nology (BUET) in Computer Science and En-gineering (CSE), on April-2012 and February-
2015, respectively. Then he worked (currentlyon leave) as an assistant professor of depart-
ment of CSE, United International University
(UIU) until Fall 2015. His fields of interest forresearch are Artificial Intelligence and Machine
Learning.
Jean-Charles Grégoire is an associate profes-
sor at INRS, a constituent of the Université duQuébec with a focus on research and educa-
tion at the Masters and Ph.D. levels. His re-
search interests cover all aspects of telecommu-nication systems engineering, including proto-
cols, distributed systems, network design andperformance analysis, and more recently, secu-
rity. He also has made significant contributionsin the area of formal methods.