DECADE                                                          Z. Huang
Internet-Draft                                                   X. Chen
Intended status: Informational                       HUAWEI Technologies
Expires: April 21, 2011                                 October 18, 2010


                An integration example of DECADE system
               draft-huang-decade-integration-example-00

Abstract

   This document represents an integration experiment of DECADE.  In the
   experiment, we use Vuze as the application which uses DECADE server
   for content distribution.  This document describes the framework,
   message flow, environment settings and test steps.  We also analyze
   the performance benefit of the experiment.

Status of this Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   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."

   This Internet-Draft will expire on April 21, 2011.

Copyright Notice

   Copyright (c) 2010 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
   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.



Huang & Chen             Expires April 21, 2011                 [Page 1]


Internet-Draft    Integration example of DECADE system      October 2010


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Terminology  . . . . . . . . . . . . . . . . . . . . . . . . .  3
   3.  Vuze Client Design . . . . . . . . . . . . . . . . . . . . . .  4
     3.1.  DECADE-Enabled Vuze architecture Design  . . . . . . . . .  4
     3.2.  DECADE-Enabled Vuze Communication Procedure  . . . . . . .  5
   4.  Test Environment Setting . . . . . . . . . . . . . . . . . . .  6
     4.1.  Test Platforms . . . . . . . . . . . . . . . . . . . . . .  7
       4.1.1.  DECADE Server  . . . . . . . . . . . . . . . . . . . .  7
       4.1.2.  Vuze Client with DECADE Plugin . . . . . . . . . . . .  7
       4.1.3.  Remote Controller  . . . . . . . . . . . . . . . . . .  8
       4.1.4.  Tracker  . . . . . . . . . . . . . . . . . . . . . . .  8
       4.1.5.  PL Manager . . . . . . . . . . . . . . . . . . . . . .  8
       4.1.6.  HTTP Server  . . . . . . . . . . . . . . . . . . . . .  8
     4.2.  Benchmark Setting  . . . . . . . . . . . . . . . . . . . .  8
     4.3.  Test Steps . . . . . . . . . . . . . . . . . . . . . . . .  9
   5.  Performance Analysis . . . . . . . . . . . . . . . . . . . . .  9
   6.  Security Considerations  . . . . . . . . . . . . . . . . . . . 10
   7.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 10
   8.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 10
   9.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 11
     9.1.  Informative References . . . . . . . . . . . . . . . . . . 11
     9.2.  References . . . . . . . . . . . . . . . . . . . . . . . . 11
     9.3.  references . . . . . . . . . . . . . . . . . . . . . . . . 11
     9.4.  References . . . . . . . . . . . . . . . . . . . . . . . . 11
     9.5.  References . . . . . . . . . . . . . . . . . . . . . . . . 11
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 11























Huang & Chen             Expires April 21, 2011                 [Page 2]


Internet-Draft    Integration example of DECADE system      October 2010


1.  Introduction

   DECADE [draft-ietf-decade-problem-statement-00]is an architecture
   that provides applications with access and resource control to in-
   network storage.

   This draft introduces an integration example of DECADE architecture.
   In our DECADE example system, the core component includes DECADE
   server and DECADE client.  DECADE server running at Linux platform is
   designed to support data reading and writing for DECADE clients.  For
   DECADE client, we choose an open source P2P client software named
   Vuze[Vuze] which supports the user defining plugin to extend software
   function.  We designed a plugin named DECADE plugin to realize the
   DECADE function.  Test Environment and performance of DECADE-Enable
   Vuze are described in the draft after introducing the system
   architecture and main message flow.

   Please note that Vuze presented in this draft is only one of many P2P
   applications.  DECADE can support other applications, for example
   live streaming.Certainly, we only show Vuze Integration experiment in
   the document.


2.  Terminology

   P2P:Peer-to-Peer computing or networking is a distributed application
   architecture that partitions tasks or work loads between peers.
   Peers are equally privileged, equipotent participants in the
   application.

   Vuze: An open source P2P application, which uses BitTorrent protocol
   for message and data exchanging.Vuze provides a set of interfaces
   which support users to develop particular extensions.

   DECADE Plugin:A plugin built into Vuze to realize DECADE functions
   including getting/putting data from/to DECADE server and redirection
   .

   DECADE-Enabled Vuze: A Vuze client that is compatible with DECADE by
   implementing DECADE plugin and DECADE plugin is enabled.

   Native Vuze: A Vuze client without DECADE plugin or with DECADE
   plugin but DECADE function is disabled.

   Remote Controller: An controller which can control every Vuze client
   to start or stop downloading tasks It also has the function of
   collecting statistics information of each Vuze client.It is a main
   operating platform.



Huang & Chen             Expires April 21, 2011                 [Page 3]


Internet-Draft    Integration example of DECADE system      October 2010


3.  Vuze Client Design

   Before showing the trial procedure we must illustrate Vuze Client
   design procedure first.

   Note that Vuze client is classified into two different kinds - Native
   Vuze and DECADE-Enabled Vuze.  When users run Native Vuze,it behaves
   as usual BitTorrent client.When using DECADE-Enabled Vuze, the
   communication and data exchange process is different.That is a very
   significant change,it means that uplink traffic can be reduced
   sharply and download performance can be improved.  It is beneficial
   for ISPs to save the last-mile uplink bandwidth.

3.1.  DECADE-Enabled Vuze architecture Design

   DECADE plugin is one core part of our demo system.  It has several
   interfaces with other components as following:

   Interface between DECADE plugin and DECADE server: DECADE plugin can
   upload and download the data from DECADE server.  It also includes
   other functions such as user registration, application registration
   etc.

   Interface between DECADE plugin and Vuze client: DECADE plugin can
   register the listener to intercept the BitTorrent message such as
   "BT_Request" message from or to Vuze client, encapsulate the data
   from DECADE server into "BT_Piece" message and put the "BT_Piece"
   message into incoming message queue, read the block/piece data from
   the disk when seeding (to upload the data to DECADE server), and
   start or stop the download task, all these functions are supported in
   the Plugin API provided by Vuze.

   Interface between DECADE plugins: When DECADE plugin intercepts the
   "BT_Request" message from other Vuze clients, local DECADE plugin
   sends "Redirect" message to remote DECADE plugin to authorize it to
   download the piece data from the DECADE server.

   Interface between DECADE plugin and Remote Controller: DECADE plugin
   registers with Remote Controller after starting up, Remote Controller
   can control all the Vuze clients to start, stop or resume the
   download task through DECADE plugins.

   The system architecture is as follow:








Huang & Chen             Expires April 21, 2011                 [Page 4]


Internet-Draft    Integration example of DECADE system      October 2010


   _____________                _____________
   |  DACADE    |               |  DECADE    |
   |  Server    |<------------->|  Server    |
   |____________|               |____________|
         ^                            ^
         |                            |
   ______|______                ______|______
   |     |      |               |     |      |
   | P2P | Peer |               | P2P | Peer |
   |     |      |               |     |      |                _____________
   | ____v____  |               | ____v____  |                | Remote     |
   | |DECADE  | |               | | DECADE | |                | Controller |
   | |Plugin  |<|-------------- |>| Plugin |<|----------------|____________|
   | |________| |               | |________| |                      |
   |     ^   ^  |               |     ^      |                      |
   |     |   |__|_______________|_____|______|______________________|
   | PluginAPI  |               | PluginAPI  |
   |     |      |               |     |      |
   | ____v____  |               | ____v____  |
   | |        | |               | |        | |
   | |  Vuze  |<|-------------- |>|  Vuze  | |
   | |________| |               | |________| |
   |____________|               |____________|

3.2.  DECADE-Enabled Vuze Communication Procedure

   A DECADE plugin can change the data path of BitTorrent download by
   using a "Redirect" message.

   The detailed communication procedure is as following:

   O When each client starts the download task ,it will try to connect
   the tracker to get peer list and then send "BT_Request" message to
   other peers in peer list;

   O If the DECADE plugin is enabled, then it will intercept the
   incoming "BT_Request" message from other Vuze clients, and then reply
   with a "Redirect" message which includes DDECADE server's address,
   authorization token,and etc to the requester.

   O When a DECADE plugin receives a "Redirect" message,it will connect
   to the DECADE server according to message context and send "Remote
   Get" message to the DECADE server to request the data,then wait for
   response;

   O When a DECADE server receives a "Remote Get" message, it will check
   the server IP address in the messge, Case 1: if the address equals to
   its own IP address, then it will send the data to the requester from



Huang & Chen             Expires April 21, 2011                 [Page 5]


Internet-Draft    Integration example of DECADE system      October 2010


   its local disk/memory; Case 2: if the address is not equal to its own
   IP address, then it will send the "Remote Get" message to that
   address, to fetch the data, and then send the data to the requester.
   The data will be cached in the server locally for use by other
   requesters.

   O When a DECADE plugin obtains the data,it will encapsulate the data
   into a standard "BT_Piece" message and send to Vuze client,then the
   client can write the data block into storage.

   The detailed communication diagram is as follow:
__________   __________           __________   _________          __________     __________
|         |  | DACADE  |          | DACADE  |  |        |         | DECADE  |    | DECADE  |
| Vuze1   |  | Plugin1 |          | Plugin2 |  | Vuze2  |         | Server  |    | Server  |
|_________|  |_________|          |_________|  |________|         |_________|    |_________|
     |            |                    |           |                   |              |
     |            |      HandShake     |           |                   |              |
     |<-----------|--------------------|---------->|                   |              |
     |            |  Azureus HandShake |           |                   |              |
     |<-----------|--------------------|---------->|                   |              |
     |            |     BT_BitField    |           |                   |              |
     |<-----------|--------------------|---------->|                   |              |
     |            |     BT_Request     |           |                   |              |
     |------------|------------------->|           |                   |              |
     |            |                    |           |                   |              |
     |            |     Redirect       |           |                   |              |
     |            |<-------------------|           |                   |              |
     |            |                   DACADE RemoteGet                 |              |
     |            |--------------------------------------------------->|              |
     |            |                    |           |                   |  DACADE Get  |
     |            |                    |           |                   |------------->|
     |            |                    |           |                   |  DACADE Data |
     |            |                    |           |                   |<-------------|
     |            |                     DACADE Data                    |              |
     |            |<---------------------------------------------------|              |
     |            |                    |           |                   |              |
     |  BT_Piece  |                    |           |                   |              |
     |<-----------|                    |           |                   |              |
     |            |                    |           |                   |              |


4.  Test Environment Setting

   Test environment includes Vuze client, tracker, DECADE Plugin, DECADE
   Servers and other supportive components such as HTTP Server, FTP
   Server and Remote Controller.  For performance comparison of Native
   Vuze and DECADE-Enabled Vuze, we set the same amount of total network
   bandwidth resource in these two test cases.  It means the total



Huang & Chen             Expires April 21, 2011                 [Page 6]


Internet-Draft    Integration example of DECADE system      October 2010


   uplink bandwidth of all the Vzue clients in the native Vuze test case
   is equal to the bandwidth of DECADE server in DECADE-Enabled Vuze
   test case.

4.1.  Test Platforms

          +-------------+        +-------------+
          |             |        |             |
          |DECADE Server|  ...   |DECADE Server|
          |             |        |             |
          +-------------+        +-------------+
                 /   \                    \
                /     \                    \
               /       \                    \
              /         \                    \
             /           \                    \
            /             \                    \
           /               \                    \
    +-------------+ +-------------+     +-------------+  +-------------+
    | Vuze client | | Vuze client |     | Vuze client |  |             |
    | with DECADE | | with DECADE | ... | with DECADE |--|  Tracker    |
    | plugin      | | plugin      |     | plugin      |  |             |
    +-------------+ +-------------+     +-------------+  +-------------+
                \           |             /
                 \          |            /
                  \         |           /
                   \        |          /
                    \       |         /
                     \      |        /
                      \     |       /
                       \    |      /
                        \   |     /
   +-------------+   +-------------+    +-------------+  +-------------+
   |             |   |   Remote    |    |             |  |             |
   | PL Manager  |   | Controller  |    | HTTP Server |  |  FTP Server |
   |             |   |             |    |             |  |             |
   +-------------+   +-------------+    +-------------+  +-------------+

4.1.1.  DECADE Server

   DECADE Server runs at Amazon EC2 [Amazon-EC2]small instances.

4.1.2.  Vuze Client with DECADE Plugin

   Vuze clients include seeding client and leechers.Leechers run at
   PlanetLab[PlanetLab] and the seeding client runs at Window 2003
   server.  DECADE Plugin will be automatically loaded and run after
   Vuze client starts up.



Huang & Chen             Expires April 21, 2011                 [Page 7]


Internet-Draft    Integration example of DECADE system      October 2010


4.1.3.  Remote Controller

   Remote controller can list all the Vuze clients in user interface and
   control them to download the specific BitTorrent file.  It runs at
   Window 2003 server.

4.1.4.  Tracker

   Vuze client provides tracker capability, so we did not deploy our own
   tracker.Vuze embedded tracker is enabled when making a torrent file,
   the seeding client is also the tracker.

4.1.5.  PL Manager

   PL Manager [PlanetLab-experiment-manager]is a tool developed by
   University of Washington, which presents a simple GUI to control
   PlanetLab nodes and perform common tasks such as:

      O Selecting nodes for your slice.

      O Choosing nodes for your experiment based on CoMon information
      about the nodes.

      O Reliably deploying you experiment files.

      O Executing commands / sets of commands on every node in parallel.

      O Monitoring the progress of the experiment as a whole, as well as
      viewing console output from the nodes.

4.1.6.  HTTP Server

   Torrent file will be put in the HTTP Server and the leechers will
   retrieve the torrent file from HTTP Server after receiving the
   download command from Remote Controller.  We use Apache Tomcat which
   is an open source software as HTTP Server.

4.2.  Benchmark Setting

   For the performance comparison of Native Vuze and DECADE-Enabled
   Vuze, the same system bandwidth is provided through some parameter
   settings.  In the Native Vuze, the system bandwidth is defined as the
   amount of the uplink bandwidth from all the Vuze clients.  The
   maximum upload bandwidth (Bu) is configured to every Vuze client
   before the test.  Suppose the number of the Vuze clients is N, the
   system bandwidth is Bu * N. In the DECADE-Enabled Vuze case, the same
   bandwidth (Bu * N) is configured to the corresponding Ethernet port
   of DECADE Server.



Huang & Chen             Expires April 21, 2011                 [Page 8]


Internet-Draft    Integration example of DECADE system      October 2010


4.3.  Test Steps

   Test steps of DECADE-Enabled Vuze is as follows:

      O Start DECADE Server, Remote Controller and all the Vuze clients.

      O One of DECADE Vuze clients seeds, generates the torrent file.
      DECADE Plugin automatically uploads the data to DECADE Server.

      O Manually put the torrent file into home directory of HTTP
      server.  If the default directory of torrent file in Vuze client
      is set to the home directory of HTTP server, this step can be
      ignored.

      O Remote Controller sends the download command to other DECADE-
      Enabled Vuze clients (leechers).

      O Leechers fetch torrent file from HTTP server.

      O Leechers request and get peer list from the tracker.

      O Leechers send BT_Request message to peers and get Redirect
      messages from peers.

      O Leechers get objects from DECADE Servers and finish the
      download.

      O Collecting and analyzing the log from all the Vuze clients.

   Test steps of Native Vuze is similar to DECADE-Enabled Vuze.The
   difference Is that Native Vuze client does not use DECADE server to
   put and get data.


5.  Performance Analysis

   Performance advantage is shown according to the test result of
   experiment:

   O There is no upload data traffic from Vuze clients in the DECADE-
   Enabled Vuze experiment, but in the Native Vuze experiment, the
   upload data traffic from Vuze clients is same as download data
   traffic.  Bandwidth resource is reduced in the last mile in the
   DECADE-Enabled Vuze experiment.

   O Higher system resource efficiency in the DECADE-Enabled Vuze
   experiment, system resource efficiency is defined as the ratio of
   system download rate to the total system bandwidth.  The test result



Huang & Chen             Expires April 21, 2011                 [Page 9]


Internet-Draft    Integration example of DECADE system      October 2010


   is illustrated in the following figure.


      |
      |
      |                          88%
      |
      |                        +-------+
      |                        |       |
      |         65%            |       |
      |                        |       |
      |      +-------+         |       |
      |      |       |         |       |
      |      |       |         |       |
      |      |       |         |       |
      |      |       |         |       |
      |      |       |         |       |
      |      |       |         |       |
      |      |       |         |       |
      |      |       |         |       |
      |      |       |         |       |
      |      |       |         |       |
      +------+-------+---------+-------+--------

            Native Vuze      DECADE-Enabled Vuze



6.  Security Considerations

   This draft does not introduce any security considerations.


7.  IANA Considerations

   This document does not have any IANA Considerations.


8.  Acknowledgments

   The authors would like to thank Haibin Song and Ning Zong for
   comments and contributions to this document, and also thanks Paul
   Gardner, Yudong Kang, Tao Jiang, Jinglong Liu and Cixiang Lei for
   programming support.


9.  References




Huang & Chen             Expires April 21, 2011                [Page 10]


Internet-Draft    Integration example of DECADE system      October 2010


9.1.  Informative References

   [draft-ietf-decade-problem-statement-00]
              Song, H., Zong, N., Yang, Y., and R. Alimi, "DECoupled
              Application Data Enroute (DECADE) Problem Statement",
              August 2010.

9.2.  References

   [PlanetLab]
              "PlanetLab", http://www.Planet-lab.org.

9.3.  references

   [PlanetLab-experiment-manager]
              Computer Science and Engineering, University of
              Washington, "PlanetLab experiment manager",
              http://www.cs.washington.edu/research/networking/cplane/.

9.4.  References

   [Amazon-EC2]
              Amazon, "Amazon Elastic Compute Cloud",
              http://aws.amazon.com/ec2/.

9.5.  References

   [Vuze]     "Vuze", http://www.vuze.com.


Authors' Addresses

   Z Huang
   HUAWEI Technologies

   Email: hpanda@huawei.com


   X Chen
   HUAWEI Technologies

   Email: chen.xiaohui@huawei.com









Huang & Chen             Expires April 21, 2011                [Page 11]