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


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

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 25, 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 25, 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  . . . . . . . . . . . . . . . . . . . 11
   7.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 11
   8.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 11
   9.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 11
     9.1.  Informative References . . . . . . . . . . . . . . . . . . 11
     9.2.  References . . . . . . . . . . . . . . . . . . . . . . . . 11
     9.3.  references . . . . . . . . . . . . . . . . . . . . . . . . 11
     9.4.  References . . . . . . . . . . . . . . . . . . . . . . . . 11
     9.5.  References . . . . . . . . . . . . . . . . . . . . . . . . 12
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 12























Huang & Chen             Expires April 25, 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 DECADE example system described in the draft is only
   an example of possible implementation.  And Vuze presented in this
   draft is only one of many P2P applications.  DECADE can support other
   applications, for example live streaming.  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.

   DECADE server: a server software which runs at Linux system,
   providing the in-network storage function for DECADE Plugin to get
   and put the data.  It's an implementation example of in-network



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


Internet-Draft    Integration example of DECADE system      October 2010


   storage.

   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.


3.  Vuze Client Design

   Note that Vuze client is classified into two different kinds - Native
   Vuze and DECADE-Enabled Vuze.  When running Native Vuze, it behaves
   as usual BitTorrent client: some Vuze clients upload the data for
   other Vuze clients to download.  When using DECADE-Enabled Vuze, the
   communication and data exchange process is different.  The DECADE
   server will provide the data for Vuze clients to download.  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.



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


Internet-Draft    Integration example of DECADE system      October 2010


   The system architecture is as follow:
   _____________                _____________
   |  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 so on 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 message, Case 1: if the address equals



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


Internet-Draft    Integration example of DECADE system      October 2010


   to its own IP address, then it will send the data to the requester
   from 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  |         | Server1 |    | Server2 |
|_________|  |_________|          |_________|  |________|         |_________|    |_________|
     |            |                    |           |                   |              |
     |            |      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



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


Internet-Draft    Integration example of DECADE system      October 2010


   bandwidth resource in these two test cases.  It means the total
   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



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


Internet-Draft    Integration example of DECADE system      October 2010


   Vuze client starts up.

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



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


Internet-Draft    Integration example of DECADE system      October 2010


   bandwidth (Bu * N) is configured to the corresponding Ethernet port
   of DECADE Server.

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.  The test result is ilustrated in the
   following table.  The download traffic and upload traffic include



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


Internet-Draft    Integration example of DECADE system      October 2010


   data traffic and signal traffic.  For the upload traffic in the
   DECADE-enable Vuze, the data traffic is zero so the all traffic is
   signal overhead.  Though we used the same torrent file in the two
   cases, but the number of Vuze client was not the same because the
   nodes in the Planet-lab are not always stable, so the download
   traffic is much different in two cases.

     +--------------------+--------------------+--------------------+
     |                    |                    |                    |
     |                    |  Download traffic  |   Upload traffic   |
     |                    |                    |                    |
     +--------------------+--------------------+--------------------+
     |                    |                    |                    |
     | DECADE-Enabled Vuze|       480MB        |       12MB
     |                    |                    |                    |
     +--------------------+--------------------+--------------------+
     |                    |                    |                    |
     |    Native Vuze     |       430MB        |       430MB
     |                    |                    |                    |
     +--------------------+--------------------+--------------------+

   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
   is illustrated in the following figure.


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




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


Internet-Draft    Integration example of DECADE system      October 2010


            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, Richard Yang 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

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



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


Internet-Draft    Integration example of DECADE system      October 2010


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 25, 2011                [Page 12]