Network Working Group                                  M. Boucadair, Ed.
Internet-Draft                                             J-L. Grimault
Intended status: Informational                                  P. Levis
Expires: July 16, 2009                                   A. Villefranque
                                                          France Telecom
                                                        January 12, 2009


  Behaviour of BitTorrent service in an IP Shared Address Environment
           draft-boucadair-behave-bittorrent-portrange-02.txt

Status of this Memo

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

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on July 16, 2009.

Copyright Notice

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






Boucadair, et al.         Expires July 16, 2009                 [Page 1]


Internet-Draft            Port Range BitTorrent             January 2009


Abstract

   This memo describes the behaviour of BitTorrent service in the
   context of IP shared addresses.  It provides an overview of the used
   testbed and main results of the tests that have been conducted in
   order to assess the limitations of an architecture based on shared IP
   addresses.


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  4

   2.  BitTorent Overview . . . . . . . . . . . . . . . . . . . . . .  4
     2.1.  BitTorrent at a Glance . . . . . . . . . . . . . . . . . .  4
     2.2.  Software Configuration . . . . . . . . . . . . . . . . . .  5
       2.2.1.  BitTorrent Client  . . . . . . . . . . . . . . . . . .  5
       2.2.2.  BitTorrent Server  . . . . . . . . . . . . . . . . . .  5
       2.2.3.  BitTorrent Tracker . . . . . . . . . . . . . . . . . .  6

   3.  Testbed Overview . . . . . . . . . . . . . . . . . . . . . . .  6
     3.1.  Testbed Description  . . . . . . . . . . . . . . . . . . .  6
     3.2.  Files  . . . . . . . . . . . . . . . . . . . . . . . . . .  7

   4.  Description of Tests . . . . . . . . . . . . . . . . . . . . .  7
     4.1.  Connection to Overlay Test Group . . . . . . . . . . . . .  7
     4.2.  Upload Test Group  . . . . . . . . . . . . . . . . . . . .  7
     4.3.  Mutual Download Test Group . . . . . . . . . . . . . . . .  8
     4.4.  Simultaneous Download Test Group . . . . . . . . . . . . .  9

   5.  Results  . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
     5.1.  First Configuration: Multiple Connections with the
           same IP address are enabled  . . . . . . . . . . . . . . . 12
     5.2.  Second Configuration: Multiple Connections with the
           same IP address are disabled . . . . . . . . . . . . . . . 14

   6.  Conclusions  . . . . . . . . . . . . . . . . . . . . . . . . . 17

   7.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 17

   8.  Security Considerations  . . . . . . . . . . . . . . . . . . . 18

   9.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 18

   10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 18
     10.1. Normative References . . . . . . . . . . . . . . . . . . . 18
     10.2. Informative References . . . . . . . . . . . . . . . . . . 18




Boucadair, et al.         Expires July 16, 2009                 [Page 2]


Internet-Draft            Port Range BitTorrent             January 2009


   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 19


















































Boucadair, et al.         Expires July 16, 2009                 [Page 3]


Internet-Draft            Port Range BitTorrent             January 2009


1.  Introduction

   Recently, several proposals have been disseminated within IETF to
   contribute to solve the IP exhaustion problem.  These solutions may
   be grouped into two categories:

      (1) Solutions which propose the introduction of a second level of
      NAT (Network Address Translator), denoted also as Carrier Grade
      NAT (CG-NAT).  This node is located in the Service Provider
      domain.  Private addresses are assigned to end-user CPEs, which
      still perform their own NAT.  The CG-NAT is responsible for
      translating IP packets issued with private addresses to ones with
      publicly routable IPv4 addresses (especially when exiting the
      domain of the Service Provider).
      [ID.durand-softwire-dual-stack-lite] is a variant of these
      solutions where there is only one NAT hosted in the Service
      Provider's network.

      (2) Solutions which avoid the introduction of a NAT in the Service
      Provider's network.  Examples of these solutions are
      [ID.ymbk-aplusp], [ID.boucadair-port-range], [ID.despres-sam] and
      [ID.bajko-v6ops-port-restricted-ipaddr-assign].  These solutions
      allocate the same IP public address to several customers at the
      same time.  They also allocate a restricted port range to each
      customer so that two customers with the same IP address have two
      different port ranges that do not overlap.

   Both the above listed categories are based on sharing an IP address
   between several machines.  In this context, the delivery of some
   services may be impacted, especially those enforcing a restriction
   based on the source IP address.

   This memo focuses on BitTorrent as an example of application which
   applies a restriction based on IP address.  This memo describes a
   testing campaign that has been carried out to assess the impact of IP
   shared address on BitTorrent.

   Testing activities are conducted using a testbed which is configured
   according to the solution described in [ID.boucadair-port-range].


2.  BitTorent Overview

2.1.  BitTorrent at a Glance

   BitTorrent is a distributed file sharing infrastructure.  It is based
   on P2P (Peer to Peer) techniques for exchanging files between
   connected users.  Three parties are involved in a BitTorrent



Boucadair, et al.         Expires July 16, 2009                 [Page 4]


Internet-Draft            Port Range BitTorrent             January 2009


   architecture as detailed hereafter:

   1.  The Server: The server into which, has been uploaded the torrent
       file.

   2.  The Tracker: Maintains a list of clients which have the file or
       some portions of that file.

   3.  The Client: Entities which are downloading and/or uploading
       portions of the file.  Two categories of clients may be
       distinguished:

       A.  Leechers: Clients which are currently downloading the file
           but do not yet detain all the portions of the file.  As for
           the portions already obtained, the leechers upload them
           towards requesting clients;

       B.  Seeders: Clients which detain all the portions of the file
           and are uploading them to other requesting clients.

   A torrent file is a file which includes the meta-data information of
   the file to be shared: the file name, its length, a hash and the URL
   of the tracker.  In order to download a given file, a BitTorrent
   client needs to obtain the corresponding torrent file.  Afterwards,
   it connects to the tracker to retrieve a list of leechers and
   seeders.  Then, the client connects to those machines and downloads
   the available portions of the requested file.  It uploads also the
   portions already obtained towards requesting clients.

2.2.  Software Configuration

   This section provides an overview of installed tools.

2.2.1.  BitTorrent Client

   Various BitTorrent clients are available for public use.  The
   following one has been installed for the purposes of our testing
   activities:

   URL: www.bittorrent.com

   The installed version is 6.1.

2.2.2.  BitTorrent Server

   The BitTorrent server that has been used is the following:

   URL: www.metro-torrent.com



Boucadair, et al.         Expires July 16, 2009                 [Page 5]


Internet-Draft            Port Range BitTorrent             January 2009


2.2.3.  BitTorrent Tracker

   The BitTorrent tracker that has been used is the following:

   URL: www.metro-torrent.com/announce.php


3.  Testbed Overview

3.1.  Testbed Description

   The testbed used to conduct the testing activities, described in
   Section 5, is the same as the one described in Section 4 of
   [ID.boucadair-port-range].

   o  The PRR (Port Range Router) is responsible to implement a port-
      driven routing so as to be able to route incoming traffic to the
      appropriate machine among those having the same IP address.

   o  CPE-1 and CPE-2 are two CPEs to which the same IP address is
      assigned.  In order to discriminate these CPEs, distinct Port
      Masks [ID.boucadair-dhc-port-range] are assigned to each of these
      CPE.

   o  T1 (respectively T2) is a machine located in the LAN behind CPE-1
      (respectively CPE-2).

   o  RT1 and RT2 are remote machines reachable through Internet.

   +-------+    +-----+       +-----------+  +----------+
   |       |    |     |       | Service   |  |          |
   |   T1  |----|CPE-1|-------| Provider  |  |          |
   |       |    |     |       | Domain    |  |          |    +---------+
   +-------+    +-----+       |           |  |          |    | Remote  |
            193.51.145.206    |           |  |          +----+ Terminal|
                              |  +-----+  |  |          |    |  (RT1)  |
   +-------+    +-----+       |  | PRR |  +--+ Internet |    +---------+
   |       |    |     |       |  +-----+  |  |          |    193.51.145.205
   |   T2  |----|CPE-2|-------|           |  |          |
   |       |    |     |       |           |  |          |
   +-------+    +-----+       |           |  |          |    +---------+
               193.51.145.206 |           |  |          |    | Remote  |
                              |           |  |          +----+ Terminal|
                              |           |  |          |    |  (RT2)  |
                              |           |  |          |    +---------+
                              |           |  |          |    193.51.145.208
                              +-----------+  +----------+




Boucadair, et al.         Expires July 16, 2009                 [Page 6]


Internet-Draft            Port Range BitTorrent             January 2009


3.2.  Files

   The following table lists the files available in each machine:

            +-----------------+-------------------------------+
            | Machine' s name | Available files               |
            +-----------------+-------------------------------+
            | T1              | TestCaenF1 and TestCaenFa     |
            | T2              | TestCaenF1 and TestCaenFb     |
            | RT1             | TestCaenFRT1 and TestCaenFRTa |
            | RT2             | TestCaenFRT1 and TestCaenFRTb |
            +-----------------+-------------------------------+

                              Available files


4.  Description of Tests

   This section lists the tests that have been conducted.

4.1.  Connection to Overlay Test Group

   This table lists the test to assess the ability of distinct machines
   having the same IP address to connect to BitTorrent overlay.

   +--------+------------+------------------+---------------------------+
   | Test   | Test Title | Purpose          | Description               |
   | Index  |            |                  |                           |
   +--------+------------+------------------+---------------------------+
   | Test_1 | Connection | Check if two     | Check if BitTorrent       |
   |        | to         | terminals,       | client installed on T1    |
   |        | BitTorrent | having the same  | and T2 machines are able  |
   |        | Overlay    | public IP        | to use the same tracker   |
   |        |            | address, are     | and that no problems are  |
   |        |            | able to connect  | experienced to use the    |
   |        |            | to BitTorrent    | same tracker by T1 and    |
   |        |            | overlay network  | T2.                       |
   +--------+------------+------------------+---------------------------+

                     Connecting to Overlay Test Group

4.2.  Upload Test Group

   This test group aims at checking if upload operations are not
   impacted/restricted due to the presence of several machines with the
   same IP address.





Boucadair, et al.         Expires July 16, 2009                 [Page 7]


Internet-Draft            Port Range BitTorrent             January 2009


   +--------+------------+---------------+--------------------------------+
   | Test   | Test Title | Purpose       | Description                    |
   | Index  |            |               |                                |
   +--------+------------+---------------+--------------------------------+
   | Test_2 | Uploading  | Check if two  | Check if torrent files may be  |
   |        | distinct   | terminals,    | uploaded from T1 and T2 using  |
   |        | files      | having the    | the same tracker.  On T1       |
   |        | using the  | same public   | (resp. T2), generate a torrent |
   |        | same       | IP address,   | file TestCaenFa.torrent (resp. |
   |        | BitTorrent | are able to   | TestCaenFb.torrent) referring  |
   |        | tracker    | upload        | to the file TestCaenFa (resp.  |
   |        | and server | torrent files | TestCaenFb) and pointing to    |
   |        |            | (referring to | the tracker TRA.  From T1      |
   |        |            | distinct      | (resp. T2) try to put          |
   |        |            | files) using  | TestCaenFa.torrent (resp.      |
   |        |            | the same      | TestCaenFb.torrent) onto       |
   |        |            | tracker and   | server S. Check if the upload  |
   |        |            | same server   | operation has succeeded        |
   | Test_3 | Uploading  | Check if two  | On T1 (resp. T2), generate a   |
   |        | torrent    | terminals,    | torrent file                   |
   |        | files      | having the    | TestCaenF1.torrent (resp.      |
   |        | referring  | same public   | TestCaenF1.torrent) referring  |
   |        | to the     | IP address,   | to the file TestCaenF1 and     |
   |        | same file  | are able to   | pointing to the tracker TRA.   |
   |        |            | upload        | From T1 (resp. T2) try to put  |
   |        |            | torrent       | TestCaenF1.torrent (resp.      |
   |        |            | files, which  | TestCaenF1.torrent) onto       |
   |        |            | refer to the  | server S. Check if the upload  |
   |        |            | same file,    | operation has succeeded        |
   |        |            | using the     |                                |
   |        |            | same tracker  |                                |
   +--------+------------+---------------+--------------------------------+

                             Upload Test Group

4.3.  Mutual Download Test Group

   The purpose of this test group is to check if mutual downloading
   operations can occur between machines having the same IP address.












Boucadair, et al.         Expires July 16, 2009                 [Page 8]


Internet-Draft            Port Range BitTorrent             January 2009


   +--------+-------------+-----------+--------------------------------+
   | Test   | Test Title  | Purpose   | Description                    |
   | Index  |             |           |                                |
   +--------+-------------+-----------+--------------------------------+
   | Test_4 | Mutual      | Check if  | Check if T1 can download the   |
   |        | Downloading | two       | file uploaded by T2 (ref.      |
   |        | between     | terminals | Test_2) and vice versa.  Three |
   |        | machines    | having    | scenarios are to be tested:    |
   |        | sharing the | the same  | (1) T1 downloads TestCaenFb    |
   |        | same IP     | public IP | but T2 does not download any   |
   |        | address     | address   | file from T1, (2) T2 downloads |
   |        |             | can       | TestCaenFa but T1 does not     |
   |        |             | download  | download any file from T2, (3) |
   |        |             | a file    | T1 downloads TestCaenFb and T2 |
   |        |             | from each | downloads TestCaenFa at the    |
   |        |             | another   | same time                      |
   +--------+-------------+-----------+--------------------------------+

                        Mutual Download Test Group

4.4.  Simultaneous Download Test Group

   This test group aims at checking if simultaneous downloading
   operations from remote seed(s)/leecher(s) can be performed by several
   machines sharing the same IP address.

   +---------+--------------+----------------+-------------------------+
   | Test    | Test Title   | Purpose        | Description             |
   | Index   |              |                |                         |
   +---------+--------------+----------------+-------------------------+
   | Test_5  | Downloading  | Check if two   | Check if distinct files |
   |         | distinct     | terminals,     | available on BitTorrent |
   |         | files        | having the     | infrastructure may be   |
   |         |              | same public IP | downloaded by T1 and T2 |
   |         |              | address, are   | simultaneously          |
   |         |              | able to        |                         |
   |         |              | download       |                         |
   |         |              | distinct files |                         |
   |         |              | available on   |                         |
   |         |              | BitTorrent     |                         |
   |         |              | infrastructure |                         |










Boucadair, et al.         Expires July 16, 2009                 [Page 9]


Internet-Draft            Port Range BitTorrent             January 2009


   | Test_6  | Downloading  | Check if two   | Check if a file         |
   |         | the same     | terminals,     | available on several    |
   |         | file located | having the     | seeders may be          |
   |         | on several   | same public IP | downloaded from T1 and  |
   |         | seeders      | address, are   | T2 simultaneously.  As  |
   |         |              | able to        | an example, check if T1 |
   |         |              | download the   | and T2 can download the |
   |         |              | same file      | same file located in    |
   |         |              | located on     | RT1 and RT2 (referred   |
   |         |              | several        | to as TestCaenFRT1)     |
   |         |              | seeders        |                         |
   | Test_7  | Download the | Check if two   | Check if T1 and T2 can  |
   |         | same file    | terminals      | download the same file  |
   |         | available on | having the     | uploaded by RT1         |
   |         | a single     | same public IP | (referred to as         |
   |         | machine      | address are    | TestCaenFRTa)           |
   |         |              | able to        | concurrently.  In case  |
   |         |              | download, at   | the test fails, one of  |
   |         |              | the same time, | the two host is called  |
   |         |              | the same file  | the "waiting client"    |
   |         |              | available on a |                         |
   |         |              | single seed    |                         |





























Boucadair, et al.         Expires July 16, 2009                [Page 10]


Internet-Draft            Port Range BitTorrent             January 2009


   | Test_8  | Simultaneous | Check if it is | In case Test_7 fails,   |
   |         | downloading  | not precluded  | check that it is not    |
   |         | from the     | that a         | precluded that a        |
   |         | same seeder  | different file | different file can be   |
   |         |              | can be         | downloaded by the       |
   |         |              | downloaded by  | waiting client (T1 or   |
   |         |              | the waiting    | T2) from the same       |
   |         |              | client from    | seeder (RT1) at the     |
   |         |              | the same       | same time the other     |
   |         |              | seeder         | terminal (respectively  |
   |         |              |                | T2 or T1) is            |
   |         |              |                | downloading             |
   |         |              |                | TestCaenFRTa.  Execute  |
   |         |              |                | Test_7 in launching on  |
   |         |              |                | T1 the downloading of   |
   |         |              |                | TestCaenFRT1 and just   |
   |         |              |                | few seconds afterwards  |
   |         |              |                | in launching on T2 the  |
   |         |              |                | downloading of          |
   |         |              |                | TestCaenFRT1 and        |
   |         |              |                | TestCaenFRTa.  Check    |
   |         |              |                | that while T1 is        |
   |         |              |                | downloading             |
   |         |              |                | TestCaenFRT1 that does  |
   |         |              |                | not preclude T2 to      |
   |         |              |                | concurrently download   |
   |         |              |                | TestCaenFRTa.           |
   | Test_9  | Downloading  | Check if the   | Check if T1             |
   |         | distinct     | two terminals  | (respectively T2) can   |
   |         | files from   | having the     | download files uploaded |
   |         | the same     | same public IP | by RT1 (referred to as  |
   |         | seeder       | address are    | TestCaenRF1 and         |
   |         |              | able to        | TestCaenFRTa)           |
   |         |              | download at    | concurrently.           |
   |         |              | the same time  | Particularly, check if  |
   |         |              | two distinct   | T1 can download         |
   |         |              | files from the | TestCaenFRT1 and T2 can |
   |         |              | same seeder    | download TestCaenFRTa   |
   |         |              |                | simultaneously          |
   | Test_10 | Download the | Check if the   | in RT1, launch the      |
   |         | same file    | same file can  | downloading of          |
   |         | located on   | be downloaded  | TestCaenF1.  Check that |
   |         | machines     | by a given     | RT1 is downloading      |
   |         | having the   | machine from   | portions of TestCaenF1  |
   |         | same IP      | seeders having | at the same time from   |
   |         | address      | the same IP    | T1 and T2               |
   |         |              | address        |                         |




Boucadair, et al.         Expires July 16, 2009                [Page 11]


Internet-Draft            Port Range BitTorrent             January 2009


   | Test_11 | Automatic    | Check if the   | In case Test_7 fails,   |
   |         | query to     | terminal which | check that the terminal |
   |         | download the | was waiting    | which was waiting can   |
   |         | same file    | can finally    | finally download the    |
   |         | available on | download the   | file once the other     |
   |         | a single     | file once the  | terminal has finished   |
   |         | machine      | other terminal |                         |
   |         |              | has finished   |                         |
   | Test_12 | Download     | Check if       | Check if RT1 can        |
   |         | distinct     | distinct files | download simultaneously |
   |         | files from   | can be         | TestCaenFa (from T1)    |
   |         | two machines | downloaded by  | and TestCaenFb (from    |
   |         | having the   | the same       | T2)                     |
   |         | same IP      | machine from   |                         |
   |         | address      | seeders having |                         |
   |         |              | the same IP    |                         |
   |         |              | address        |                         |
   +---------+--------------+----------------+-------------------------+

                     Simultaneous Download Test Group


5.  Results

   BitTorrent client can be configured to accept multiple connections
   using the same IP address.  A dedicated parameter can therefore be
   positioned.  This parameter is called: bt.allow_same_ip.  Possible
   values that can be taken by this parameter are: FALSE (0) or TRUE
   (1).

   For the testing activities, two configurations have been tested:

   1.  First Configuration: bt.allow_same_ip == TRUE

   2.  Second Configuration: bt.allow_same_ip == FALSE

   The following sub-sections describe the obtained results for each
   configuration.

5.1.  First Configuration: Multiple Connections with the same IP address
      are enabled

   The following table summarises the results of the aforementioned
   tests as performed using the testbed described in Section 4.  Note
   that bt.allow_same_ip is positioned to TRUE.






Boucadair, et al.         Expires July 16, 2009                [Page 12]


Internet-Draft            Port Range BitTorrent             January 2009


   +------------+--------------------------------------+---------------+
   | Test       | Results                              | Comments      |
   | Identifier |                                      |               |
   +------------+--------------------------------------+---------------+
   | Test_1     | No problems have been experienced    | None          |
   | Test_2     | Both T1 and T2 are able to upload    | None          |
   |            | distinct torrent files using the     |               |
   |            | same tracker and the same server     |               |
   | Test_3     | Only one machine can upload a        | The server    |
   |            | torrent file referring to the same   | ensures that  |
   |            | file                                 | only one      |
   |            |                                      | single        |
   |            |                                      | torrent file  |
   |            |                                      | corresponding |
   |            |                                      | to the same   |
   |            |                                      | file is       |
   |            |                                      | listed in its |
   |            |                                      | base          |
   | Test_4     | Three scenarios have been tested:    | None          |
   |            | (1) T1 downloads TestCaenFb but T2   |               |
   |            | does not download any file from T1   |               |
   |            | (2) T2 downloads TestCaenFa but T1   |               |
   |            | does not download any file from T2   |               |
   |            | (3) T1 downloads TestCaenFb and T2   |               |
   |            | downloads TestCaenFa in the same     |               |
   |            | time.  For all these scenarios, no   |               |
   |            | problems have been encountered.  The |               |
   |            | downloading operations have          |               |
   |            | succeeded                            |               |
   | Test_5     | Both T1 and T2 are able to download  | None          |
   |            | distinct files from the BitTorrent   |               |
   |            | infrastructure                       |               |
   | Test_6     | Both T1 and T2 are able to download  | None          |
   |            | the same file located in several     |               |
   |            | seeders.  No particular problem has  |               |
   |            | been encountered                     |               |
   | Test_7     | No problem has been encountered.     | None          |
   |            | Both T1 and T2 are able to download  |               |
   |            | TestCaenFRTa from RT1                |               |
   |            | simultaneously.  Note that at the    |               |
   |            | same time, mutual downloading by T1  |               |
   |            | of portions of TestCaenFRTa already  |               |
   |            | downloaded by T2 (and vice versa)    |               |
   |            | have been noticed                    |               |
   | Test_8     | Not applicable                       | None          |






Boucadair, et al.         Expires July 16, 2009                [Page 13]


Internet-Draft            Port Range BitTorrent             January 2009


   | Test_9     | No problem has been encountered.     | None          |
   |            | Distinct files located in RT1 have   |               |
   |            | been successfully downloaded by T1   |               |
   |            | (respectively T2)                    |               |
   | Test_10    | No problem has been encountered      | None          |
   | Test_11    | Not applicable                       | Not           |
   |            |                                      | applicable    |
   | Test_12    | No problem has been encountered.     | None          |
   |            | RT1 has succeeded to download        |               |
   |            | simultaneously TestCaenFa (from T1)  |               |
   |            | and TestCaenFb (from T2)             |               |
   +------------+--------------------------------------+---------------+

                   First Configuration Obtained Results

5.2.  Second Configuration: Multiple Connections with the same IP
      address are disabled

   The following table summarises the results of the aforementioned
   tests as performed using the testbed described in Section 4.  Note
   that bt.allow_same_ip is positioned to FALSE.

   +------------+-----------------------+-----------------------------------+
   | Test       | Results               | Comments                          |
   | Identifier |                       |                                   |
   +------------+-----------------------+-----------------------------------+
   | Test_1     | No problems have been | None                              |
   |            | experienced           |                                   |
   | Test_2     | Both T1 and T2 are    | None                              |
   |            | able to upload        |                                   |
   |            | distinct torrent      |                                   |
   |            | files using the same  |                                   |
   |            | tracker and the same  |                                   |
   |            | server                |                                   |
   | Test_3     | Only one machine can  | The server ensures that only one  |
   |            | upload a torrent file | single torrent file corresponding |
   |            | referring to the same | to the same file is listed in its |
   |            | file                  | base                              |













Boucadair, et al.         Expires July 16, 2009                [Page 14]


Internet-Draft            Port Range BitTorrent             January 2009


   | Test_4     | Three scenarios have  | None                              |
   |            | been tested: (1) T1   |                                   |
   |            | downloads TestCaenFb  |                                   |
   |            | but T2 does not       |                                   |
   |            | download any file     |                                   |
   |            | from T1 (2) T2        |                                   |
   |            | downloads TestCaenFa  |                                   |
   |            | but T1 does not       |                                   |
   |            | download any file     |                                   |
   |            | from T2 (3) T1        |                                   |
   |            | downloads TestCaenFb  |                                   |
   |            | and T2 downloads      |                                   |
   |            | TestCaenFa in the     |                                   |
   |            | same time.  For all   |                                   |
   |            | these scenarios, no   |                                   |
   |            | problems have been    |                                   |
   |            | encountered.  The     |                                   |
   |            | downloading           |                                   |
   |            | operations have       |                                   |
   |            | succeeded             |                                   |
   | Test_5     | Both T1 and T2 are    | None                              |
   |            | able to download      |                                   |
   |            | distinct files from   |                                   |
   |            | the BitTorrent        |                                   |
   |            | infrastructure        |                                   |
   | Test_6     | Both T1 and T2 are    | When TestCaenFRT1 is used as      |
   |            | able to download the  | example.  T1 and T2 are able to   |
   |            | same file located in  | download the same file.  But for  |
   |            | several seeders.  No  | each file it is sending (here     |
   |            | particular problem    | TestCaenFRT1) RT1 can allow no    |
   |            | has been encountered  | more than one unique connection   |
   |            |                       | to the same address IP.  This is  |
   |            |                       | the same behaviour for RT2.  T1   |
   |            |                       | and T2 exchanges the portions of  |
   |            |                       | the files they stored             |
















Boucadair, et al.         Expires July 16, 2009                [Page 15]


Internet-Draft            Port Range BitTorrent             January 2009


   | Test_7     | Both T1 and T2 are    | This is because for each file it  |
   |            | able to download the  | is sending (here TestCaenFRTa)    |
   |            | file but only one     | RT1 can allow no more than one    |
   |            | single connection is  | unique connection to the same     |
   |            | accepted by RT1 at    | address IP.  The result is that,  |
   |            | the same time         | once T1 (or T2) has begun to      |
   |            |                       | download TestCaenFRTa, the other  |
   |            |                       | terminal (T2 or respectively T1)  |
   |            |                       | cannot get any portion of         |
   |            |                       | TestCaenFRTa directly from RT1    |
   |            |                       | till the other (T1 or             |
   |            |                       | respectively T2) has completed    |
   |            |                       | the downloading of TestCaenFRTa.  |
   |            |                       | However, that does not preclude   |
   |            |                       | the waiting terminal (T2 or T1)   |
   |            |                       | to download from the other        |
   |            |                       | terminal (T1 or T2) portions of   |
   |            |                       | TestCaenFRTa already downloaded   |
   |            |                       | from RT1                          |
   | Test_8     | The test 8 has        | While T1 has been downloading     |
   |            | succeeded             | TestCaenFRT1 from RT1, T2 could   |
   |            |                       | download TestCaenFRTa from RT1    |
   |            |                       | and in addition it can get        |
   |            |                       | portions of TestCaenFRTa already  |
   |            |                       | downloaded by T1                  |
   | Test_9     | No problem have been  | None                              |
   |            | experienced           |                                   |
   | Test_10    | Both T1 and T2 are    | The test failed because, once RT1 |
   |            | able to upload the    | has begun to download portions of |
   |            | file, but only one    | TestCaenF1 from T1 (respectively  |
   |            | connection is         | T2) it cannot accept additional   |
   |            | accepted by RT1 at    | connection with T2 for the same   |
   |            | the same time         | file                              |
   | Test_11    | The test succeeded    | Once T1 has completed its         |
   |            |                       | downloading from RT1, T2 has been |
   |            |                       | able automatically to connect to  |
   |            |                       | RT1 for receiving the portions of |
   |            |                       | TestCaenFRTa it has not already   |
   |            |                       | got from T2                       |
   | Test_12    | No problem has been   | None                              |
   |            | encountered.  RT1 has |                                   |
   |            | succeeded to download |                                   |
   |            | simultaneously        |                                   |
   |            | TestCaenFa (from T1)  |                                   |
   |            | and TestCaenFb (from  |                                   |
   |            | T2)                   |                                   |
   +------------+-----------------------+-----------------------------------+




Boucadair, et al.         Expires July 16, 2009                [Page 16]


Internet-Draft            Port Range BitTorrent             January 2009


                  Results: Multiple connections desiabled


6.  Conclusions

   This memo describes the main behaviour of BitTorrent service in an IP
   shared address environment.  Particularly, the tests have been
   carried out on a testbed implementing [ID.boucadair-port-range]
   solution.  The results are, however, valid for all IP shared address
   based solutions.

   Two limitations were experienced.  The first limitation occurs when
   two clients sharing the same IP address want to simultaneously
   retrieve the SAME file located in a SINGLE remote peer.  This
   limitation is due to the default BitTorrent configuration on the
   remote peer which does not permit sending the same file to multiple
   ports of the same IP address.  This limitation is mitigated by the
   fact that clients sharing the same IP address can exchange portions
   with each other, provided the clients can find each other through a
   common tracker, DHT, or Peer Exchange.  Even if they can not, we
   observed that the remote peer would begin serving portions of the
   file automatically as soon as the other client (sharing the same IP
   address) finished downloading.  This limitation is eliminated if the
   remote peer is configured with bt.allow_same_ip == TRUE.

   The second limitation occurs when a client tries to download a file
   located on several seeders, when those seeders share the same IP
   address.  This is because the clients are enforcing bt.allow_same_ip
   parameter to FALSE.  The client will only be able to connect to one
   seeder, among those having the same IP address, to download the file
   (note that the client can retrieve the file from other seeders having
   distinct IP addresses).  This limitation is eliminated if the local
   client is configured with bt.allow_same_ip == TRUE, which is somewhat
   likely as those clients will directly experience better throughput by
   changing their own configuration.

   Mutual file sharing between hosts having the same IP address has been
   checked.  Indeed, machines having the same IP address can share files
   with no alteration compared to current IP architectures.


7.  IANA Considerations

   This document raises no IANA considerations.







Boucadair, et al.         Expires July 16, 2009                [Page 17]


Internet-Draft            Port Range BitTorrent             January 2009


8.  Security Considerations

   This memo does not introduce any security issue.


9.  Acknowledgements

   The authors would like to thank Dan WING for suggesting the writing
   of this memo and for the review of the text.


10.  References

10.1.  Normative References

   [RFC2026]  Bradner, S., "The Internet Standards Process -- Revision
              3", BCP 9, RFC 2026, October 1996.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

10.2.  Informative References

   [ID.bajko-v6ops-port-restricted-ipaddr-assign]
              Bajko, G. and T. Savolainen, "Port Restricted IP Address
              Assignment", Internet Draft, draft-bajko-v6ops-port-
              restricted-ipaddr-assign-02.txt (work in progress),
              November 2008.

   [ID.boucadair-dhc-port-range]
              Boucadair, M., Grimault, J-L., Levis, P., and A.
              Villefranque, "DHCP Options for Conveying Port Mask and
              Port Range Router IP Address", Internet
              Draft, draft-boucadair-dhc-port-range-01.txt (work in
              progress), October 2008.

   [ID.boucadair-port-range]
              Boucadair, M., Grimault, J-L., Levis, P., and A.
              Villefranque, "Provider-Provisioned CPE: IPv4 Connectivity
              Access in the context of IPv4 address exhaustion",
              Internet Draft, draft-boucadair-port-range-00.txt (work in
              progress), October 2008.

   [ID.despres-sam]
              Despres, R., "Stateless Address Mappings (SAMs) IPv6 &
              extended IPv4 via local routing domains - possibly
              multihomed", Internet Draft, draft-despres-sam-01.txt
              (work in progress), November 2008.



Boucadair, et al.         Expires July 16, 2009                [Page 18]


Internet-Draft            Port Range BitTorrent             January 2009


   [ID.durand-softwire-dual-stack-lite]
              Durand , A., Droms, R., Haberman, B., and J. Woodyatt,
              "Dual-stack lite broadband deployments post IPv4
              exhaustion", Internet
              Draft, draft-durand-softwire-dual-stack-lite-01.txt (work
              in progress), November 2008.

   [ID.ymbk-aplusp]
              Maennel , O., Bush, R., Cittadini, L., and S. Bellovin ,
              "The A+P Approach to the Broadband Provider IPv4 Address
              Shortage", Internet Draft, draft-ymbk-aplusp-01.txt (work
              in progress), November 2008.


Authors' Addresses

   Mohamed Boucadair (editor)
   France Telecom
   42 rue des Coutures
   BP 6243
   Caen Cedex 4  14066
   France

   Email: mohamed.boucadair@orange-ftgroup.com


   Jean-Luc Grimault
   France Telecom

   Email: jeanluc.grimault@orange-ftgroup.com


   Pierre Levis
   France Telecom

   Email: pierre.levis@orange-ftgroup.com


   Alain Villefranque
   France Telecom

   Email: alain.villefranque@orange-ftgroup.com









Boucadair, et al.         Expires July 16, 2009                [Page 19]