idnits 2.17.1 draft-boucadair-behave-bittorrent-portrange-02.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** There are 145 instances of too long lines in the document, the longest one being 5 characters in excess of 72. == There are 3 instances of lines with non-RFC2606-compliant FQDNs in the document. == There are 4 instances of lines with non-RFC6890-compliant IPv4 addresses in the document. If these are example addresses, they should be changed. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (January 12, 2009) is 5582 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- == Unused Reference: 'RFC2026' is defined on line 701, but no explicit reference was found in the text == Unused Reference: 'RFC2119' is defined on line 704, but no explicit reference was found in the text == Outdated reference: A later version (-02) exists of draft-boucadair-port-range-00 == Outdated reference: A later version (-03) exists of draft-despres-sam-01 == Outdated reference: A later version (-10) exists of draft-ymbk-aplusp-01 Summary: 1 error (**), 0 flaws (~~), 8 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group M. Boucadair, Ed. 3 Internet-Draft J-L. Grimault 4 Intended status: Informational P. Levis 5 Expires: July 16, 2009 A. Villefranque 6 France Telecom 7 January 12, 2009 9 Behaviour of BitTorrent service in an IP Shared Address Environment 10 draft-boucadair-behave-bittorrent-portrange-02.txt 12 Status of this Memo 14 This Internet-Draft is submitted to IETF in full conformance with the 15 provisions of BCP 78 and BCP 79. 17 Internet-Drafts are working documents of the Internet Engineering 18 Task Force (IETF), its areas, and its working groups. Note that 19 other groups may also distribute working documents as Internet- 20 Drafts. 22 Internet-Drafts are draft documents valid for a maximum of six months 23 and may be updated, replaced, or obsoleted by other documents at any 24 time. It is inappropriate to use Internet-Drafts as reference 25 material or to cite them other than as "work in progress." 27 The list of current Internet-Drafts can be accessed at 28 http://www.ietf.org/ietf/1id-abstracts.txt. 30 The list of Internet-Draft Shadow Directories can be accessed at 31 http://www.ietf.org/shadow.html. 33 This Internet-Draft will expire on July 16, 2009. 35 Copyright Notice 37 Copyright (c) 2009 IETF Trust and the persons identified as the 38 document authors. All rights reserved. 40 This document is subject to BCP 78 and the IETF Trust's Legal 41 Provisions Relating to IETF Documents 42 (http://trustee.ietf.org/license-info) in effect on the date of 43 publication of this document. Please review these documents 44 carefully, as they describe your rights and restrictions with respect 45 to this document. 47 Abstract 49 This memo describes the behaviour of BitTorrent service in the 50 context of IP shared addresses. It provides an overview of the used 51 testbed and main results of the tests that have been conducted in 52 order to assess the limitations of an architecture based on shared IP 53 addresses. 55 Table of Contents 57 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 59 2. BitTorent Overview . . . . . . . . . . . . . . . . . . . . . . 4 60 2.1. BitTorrent at a Glance . . . . . . . . . . . . . . . . . . 4 61 2.2. Software Configuration . . . . . . . . . . . . . . . . . . 5 62 2.2.1. BitTorrent Client . . . . . . . . . . . . . . . . . . 5 63 2.2.2. BitTorrent Server . . . . . . . . . . . . . . . . . . 5 64 2.2.3. BitTorrent Tracker . . . . . . . . . . . . . . . . . . 6 66 3. Testbed Overview . . . . . . . . . . . . . . . . . . . . . . . 6 67 3.1. Testbed Description . . . . . . . . . . . . . . . . . . . 6 68 3.2. Files . . . . . . . . . . . . . . . . . . . . . . . . . . 7 70 4. Description of Tests . . . . . . . . . . . . . . . . . . . . . 7 71 4.1. Connection to Overlay Test Group . . . . . . . . . . . . . 7 72 4.2. Upload Test Group . . . . . . . . . . . . . . . . . . . . 7 73 4.3. Mutual Download Test Group . . . . . . . . . . . . . . . . 8 74 4.4. Simultaneous Download Test Group . . . . . . . . . . . . . 9 76 5. Results . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 77 5.1. First Configuration: Multiple Connections with the 78 same IP address are enabled . . . . . . . . . . . . . . . 12 79 5.2. Second Configuration: Multiple Connections with the 80 same IP address are disabled . . . . . . . . . . . . . . . 14 82 6. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 17 84 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 86 8. Security Considerations . . . . . . . . . . . . . . . . . . . 18 88 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 18 90 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 18 91 10.1. Normative References . . . . . . . . . . . . . . . . . . . 18 92 10.2. Informative References . . . . . . . . . . . . . . . . . . 18 94 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 19 96 1. Introduction 98 Recently, several proposals have been disseminated within IETF to 99 contribute to solve the IP exhaustion problem. These solutions may 100 be grouped into two categories: 102 (1) Solutions which propose the introduction of a second level of 103 NAT (Network Address Translator), denoted also as Carrier Grade 104 NAT (CG-NAT). This node is located in the Service Provider 105 domain. Private addresses are assigned to end-user CPEs, which 106 still perform their own NAT. The CG-NAT is responsible for 107 translating IP packets issued with private addresses to ones with 108 publicly routable IPv4 addresses (especially when exiting the 109 domain of the Service Provider). 110 [ID.durand-softwire-dual-stack-lite] is a variant of these 111 solutions where there is only one NAT hosted in the Service 112 Provider's network. 114 (2) Solutions which avoid the introduction of a NAT in the Service 115 Provider's network. Examples of these solutions are 116 [ID.ymbk-aplusp], [ID.boucadair-port-range], [ID.despres-sam] and 117 [ID.bajko-v6ops-port-restricted-ipaddr-assign]. These solutions 118 allocate the same IP public address to several customers at the 119 same time. They also allocate a restricted port range to each 120 customer so that two customers with the same IP address have two 121 different port ranges that do not overlap. 123 Both the above listed categories are based on sharing an IP address 124 between several machines. In this context, the delivery of some 125 services may be impacted, especially those enforcing a restriction 126 based on the source IP address. 128 This memo focuses on BitTorrent as an example of application which 129 applies a restriction based on IP address. This memo describes a 130 testing campaign that has been carried out to assess the impact of IP 131 shared address on BitTorrent. 133 Testing activities are conducted using a testbed which is configured 134 according to the solution described in [ID.boucadair-port-range]. 136 2. BitTorent Overview 138 2.1. BitTorrent at a Glance 140 BitTorrent is a distributed file sharing infrastructure. It is based 141 on P2P (Peer to Peer) techniques for exchanging files between 142 connected users. Three parties are involved in a BitTorrent 143 architecture as detailed hereafter: 145 1. The Server: The server into which, has been uploaded the torrent 146 file. 148 2. The Tracker: Maintains a list of clients which have the file or 149 some portions of that file. 151 3. The Client: Entities which are downloading and/or uploading 152 portions of the file. Two categories of clients may be 153 distinguished: 155 A. Leechers: Clients which are currently downloading the file 156 but do not yet detain all the portions of the file. As for 157 the portions already obtained, the leechers upload them 158 towards requesting clients; 160 B. Seeders: Clients which detain all the portions of the file 161 and are uploading them to other requesting clients. 163 A torrent file is a file which includes the meta-data information of 164 the file to be shared: the file name, its length, a hash and the URL 165 of the tracker. In order to download a given file, a BitTorrent 166 client needs to obtain the corresponding torrent file. Afterwards, 167 it connects to the tracker to retrieve a list of leechers and 168 seeders. Then, the client connects to those machines and downloads 169 the available portions of the requested file. It uploads also the 170 portions already obtained towards requesting clients. 172 2.2. Software Configuration 174 This section provides an overview of installed tools. 176 2.2.1. BitTorrent Client 178 Various BitTorrent clients are available for public use. The 179 following one has been installed for the purposes of our testing 180 activities: 182 URL: www.bittorrent.com 184 The installed version is 6.1. 186 2.2.2. BitTorrent Server 188 The BitTorrent server that has been used is the following: 190 URL: www.metro-torrent.com 192 2.2.3. BitTorrent Tracker 194 The BitTorrent tracker that has been used is the following: 196 URL: www.metro-torrent.com/announce.php 198 3. Testbed Overview 200 3.1. Testbed Description 202 The testbed used to conduct the testing activities, described in 203 Section 5, is the same as the one described in Section 4 of 204 [ID.boucadair-port-range]. 206 o The PRR (Port Range Router) is responsible to implement a port- 207 driven routing so as to be able to route incoming traffic to the 208 appropriate machine among those having the same IP address. 210 o CPE-1 and CPE-2 are two CPEs to which the same IP address is 211 assigned. In order to discriminate these CPEs, distinct Port 212 Masks [ID.boucadair-dhc-port-range] are assigned to each of these 213 CPE. 215 o T1 (respectively T2) is a machine located in the LAN behind CPE-1 216 (respectively CPE-2). 218 o RT1 and RT2 are remote machines reachable through Internet. 220 +-------+ +-----+ +-----------+ +----------+ 221 | | | | | Service | | | 222 | T1 |----|CPE-1|-------| Provider | | | 223 | | | | | Domain | | | +---------+ 224 +-------+ +-----+ | | | | | Remote | 225 193.51.145.206 | | | +----+ Terminal| 226 | +-----+ | | | | (RT1) | 227 +-------+ +-----+ | | PRR | +--+ Internet | +---------+ 228 | | | | | +-----+ | | | 193.51.145.205 229 | T2 |----|CPE-2|-------| | | | 230 | | | | | | | | 231 +-------+ +-----+ | | | | +---------+ 232 193.51.145.206 | | | | | Remote | 233 | | | +----+ Terminal| 234 | | | | | (RT2) | 235 | | | | +---------+ 236 | | | | 193.51.145.208 237 +-----------+ +----------+ 239 3.2. Files 241 The following table lists the files available in each machine: 243 +-----------------+-------------------------------+ 244 | Machine' s name | Available files | 245 +-----------------+-------------------------------+ 246 | T1 | TestCaenF1 and TestCaenFa | 247 | T2 | TestCaenF1 and TestCaenFb | 248 | RT1 | TestCaenFRT1 and TestCaenFRTa | 249 | RT2 | TestCaenFRT1 and TestCaenFRTb | 250 +-----------------+-------------------------------+ 252 Available files 254 4. Description of Tests 256 This section lists the tests that have been conducted. 258 4.1. Connection to Overlay Test Group 260 This table lists the test to assess the ability of distinct machines 261 having the same IP address to connect to BitTorrent overlay. 263 +--------+------------+------------------+---------------------------+ 264 | Test | Test Title | Purpose | Description | 265 | Index | | | | 266 +--------+------------+------------------+---------------------------+ 267 | Test_1 | Connection | Check if two | Check if BitTorrent | 268 | | to | terminals, | client installed on T1 | 269 | | BitTorrent | having the same | and T2 machines are able | 270 | | Overlay | public IP | to use the same tracker | 271 | | | address, are | and that no problems are | 272 | | | able to connect | experienced to use the | 273 | | | to BitTorrent | same tracker by T1 and | 274 | | | overlay network | T2. | 275 +--------+------------+------------------+---------------------------+ 277 Connecting to Overlay Test Group 279 4.2. Upload Test Group 281 This test group aims at checking if upload operations are not 282 impacted/restricted due to the presence of several machines with the 283 same IP address. 285 +--------+------------+---------------+--------------------------------+ 286 | Test | Test Title | Purpose | Description | 287 | Index | | | | 288 +--------+------------+---------------+--------------------------------+ 289 | Test_2 | Uploading | Check if two | Check if torrent files may be | 290 | | distinct | terminals, | uploaded from T1 and T2 using | 291 | | files | having the | the same tracker. On T1 | 292 | | using the | same public | (resp. T2), generate a torrent | 293 | | same | IP address, | file TestCaenFa.torrent (resp. | 294 | | BitTorrent | are able to | TestCaenFb.torrent) referring | 295 | | tracker | upload | to the file TestCaenFa (resp. | 296 | | and server | torrent files | TestCaenFb) and pointing to | 297 | | | (referring to | the tracker TRA. From T1 | 298 | | | distinct | (resp. T2) try to put | 299 | | | files) using | TestCaenFa.torrent (resp. | 300 | | | the same | TestCaenFb.torrent) onto | 301 | | | tracker and | server S. Check if the upload | 302 | | | same server | operation has succeeded | 303 | Test_3 | Uploading | Check if two | On T1 (resp. T2), generate a | 304 | | torrent | terminals, | torrent file | 305 | | files | having the | TestCaenF1.torrent (resp. | 306 | | referring | same public | TestCaenF1.torrent) referring | 307 | | to the | IP address, | to the file TestCaenF1 and | 308 | | same file | are able to | pointing to the tracker TRA. | 309 | | | upload | From T1 (resp. T2) try to put | 310 | | | torrent | TestCaenF1.torrent (resp. | 311 | | | files, which | TestCaenF1.torrent) onto | 312 | | | refer to the | server S. Check if the upload | 313 | | | same file, | operation has succeeded | 314 | | | using the | | 315 | | | same tracker | | 316 +--------+------------+---------------+--------------------------------+ 318 Upload Test Group 320 4.3. Mutual Download Test Group 322 The purpose of this test group is to check if mutual downloading 323 operations can occur between machines having the same IP address. 325 +--------+-------------+-----------+--------------------------------+ 326 | Test | Test Title | Purpose | Description | 327 | Index | | | | 328 +--------+-------------+-----------+--------------------------------+ 329 | Test_4 | Mutual | Check if | Check if T1 can download the | 330 | | Downloading | two | file uploaded by T2 (ref. | 331 | | between | terminals | Test_2) and vice versa. Three | 332 | | machines | having | scenarios are to be tested: | 333 | | sharing the | the same | (1) T1 downloads TestCaenFb | 334 | | same IP | public IP | but T2 does not download any | 335 | | address | address | file from T1, (2) T2 downloads | 336 | | | can | TestCaenFa but T1 does not | 337 | | | download | download any file from T2, (3) | 338 | | | a file | T1 downloads TestCaenFb and T2 | 339 | | | from each | downloads TestCaenFa at the | 340 | | | another | same time | 341 +--------+-------------+-----------+--------------------------------+ 343 Mutual Download Test Group 345 4.4. Simultaneous Download Test Group 347 This test group aims at checking if simultaneous downloading 348 operations from remote seed(s)/leecher(s) can be performed by several 349 machines sharing the same IP address. 351 +---------+--------------+----------------+-------------------------+ 352 | Test | Test Title | Purpose | Description | 353 | Index | | | | 354 +---------+--------------+----------------+-------------------------+ 355 | Test_5 | Downloading | Check if two | Check if distinct files | 356 | | distinct | terminals, | available on BitTorrent | 357 | | files | having the | infrastructure may be | 358 | | | same public IP | downloaded by T1 and T2 | 359 | | | address, are | simultaneously | 360 | | | able to | | 361 | | | download | | 362 | | | distinct files | | 363 | | | available on | | 364 | | | BitTorrent | | 365 | | | infrastructure | | 366 | Test_6 | Downloading | Check if two | Check if a file | 367 | | the same | terminals, | available on several | 368 | | file located | having the | seeders may be | 369 | | on several | same public IP | downloaded from T1 and | 370 | | seeders | address, are | T2 simultaneously. As | 371 | | | able to | an example, check if T1 | 372 | | | download the | and T2 can download the | 373 | | | same file | same file located in | 374 | | | located on | RT1 and RT2 (referred | 375 | | | several | to as TestCaenFRT1) | 376 | | | seeders | | 377 | Test_7 | Download the | Check if two | Check if T1 and T2 can | 378 | | same file | terminals | download the same file | 379 | | available on | having the | uploaded by RT1 | 380 | | a single | same public IP | (referred to as | 381 | | machine | address are | TestCaenFRTa) | 382 | | | able to | concurrently. In case | 383 | | | download, at | the test fails, one of | 384 | | | the same time, | the two host is called | 385 | | | the same file | the "waiting client" | 386 | | | available on a | | 387 | | | single seed | | 388 | Test_8 | Simultaneous | Check if it is | In case Test_7 fails, | 389 | | downloading | not precluded | check that it is not | 390 | | from the | that a | precluded that a | 391 | | same seeder | different file | different file can be | 392 | | | can be | downloaded by the | 393 | | | downloaded by | waiting client (T1 or | 394 | | | the waiting | T2) from the same | 395 | | | client from | seeder (RT1) at the | 396 | | | the same | same time the other | 397 | | | seeder | terminal (respectively | 398 | | | | T2 or T1) is | 399 | | | | downloading | 400 | | | | TestCaenFRTa. Execute | 401 | | | | Test_7 in launching on | 402 | | | | T1 the downloading of | 403 | | | | TestCaenFRT1 and just | 404 | | | | few seconds afterwards | 405 | | | | in launching on T2 the | 406 | | | | downloading of | 407 | | | | TestCaenFRT1 and | 408 | | | | TestCaenFRTa. Check | 409 | | | | that while T1 is | 410 | | | | downloading | 411 | | | | TestCaenFRT1 that does | 412 | | | | not preclude T2 to | 413 | | | | concurrently download | 414 | | | | TestCaenFRTa. | 415 | Test_9 | Downloading | Check if the | Check if T1 | 416 | | distinct | two terminals | (respectively T2) can | 417 | | files from | having the | download files uploaded | 418 | | the same | same public IP | by RT1 (referred to as | 419 | | seeder | address are | TestCaenRF1 and | 420 | | | able to | TestCaenFRTa) | 421 | | | download at | concurrently. | 422 | | | the same time | Particularly, check if | 423 | | | two distinct | T1 can download | 424 | | | files from the | TestCaenFRT1 and T2 can | 425 | | | same seeder | download TestCaenFRTa | 426 | | | | simultaneously | 427 | Test_10 | Download the | Check if the | in RT1, launch the | 428 | | same file | same file can | downloading of | 429 | | located on | be downloaded | TestCaenF1. Check that | 430 | | machines | by a given | RT1 is downloading | 431 | | having the | machine from | portions of TestCaenF1 | 432 | | same IP | seeders having | at the same time from | 433 | | address | the same IP | T1 and T2 | 434 | | | address | | 435 | Test_11 | Automatic | Check if the | In case Test_7 fails, | 436 | | query to | terminal which | check that the terminal | 437 | | download the | was waiting | which was waiting can | 438 | | same file | can finally | finally download the | 439 | | available on | download the | file once the other | 440 | | a single | file once the | terminal has finished | 441 | | machine | other terminal | | 442 | | | has finished | | 443 | Test_12 | Download | Check if | Check if RT1 can | 444 | | distinct | distinct files | download simultaneously | 445 | | files from | can be | TestCaenFa (from T1) | 446 | | two machines | downloaded by | and TestCaenFb (from | 447 | | having the | the same | T2) | 448 | | same IP | machine from | | 449 | | address | seeders having | | 450 | | | the same IP | | 451 | | | address | | 452 +---------+--------------+----------------+-------------------------+ 454 Simultaneous Download Test Group 456 5. Results 458 BitTorrent client can be configured to accept multiple connections 459 using the same IP address. A dedicated parameter can therefore be 460 positioned. This parameter is called: bt.allow_same_ip. Possible 461 values that can be taken by this parameter are: FALSE (0) or TRUE 462 (1). 464 For the testing activities, two configurations have been tested: 466 1. First Configuration: bt.allow_same_ip == TRUE 468 2. Second Configuration: bt.allow_same_ip == FALSE 470 The following sub-sections describe the obtained results for each 471 configuration. 473 5.1. First Configuration: Multiple Connections with the same IP address 474 are enabled 476 The following table summarises the results of the aforementioned 477 tests as performed using the testbed described in Section 4. Note 478 that bt.allow_same_ip is positioned to TRUE. 480 +------------+--------------------------------------+---------------+ 481 | Test | Results | Comments | 482 | Identifier | | | 483 +------------+--------------------------------------+---------------+ 484 | Test_1 | No problems have been experienced | None | 485 | Test_2 | Both T1 and T2 are able to upload | None | 486 | | distinct torrent files using the | | 487 | | same tracker and the same server | | 488 | Test_3 | Only one machine can upload a | The server | 489 | | torrent file referring to the same | ensures that | 490 | | file | only one | 491 | | | single | 492 | | | torrent file | 493 | | | corresponding | 494 | | | to the same | 495 | | | file is | 496 | | | listed in its | 497 | | | base | 498 | Test_4 | Three scenarios have been tested: | None | 499 | | (1) T1 downloads TestCaenFb but T2 | | 500 | | does not download any file from T1 | | 501 | | (2) T2 downloads TestCaenFa but T1 | | 502 | | does not download any file from T2 | | 503 | | (3) T1 downloads TestCaenFb and T2 | | 504 | | downloads TestCaenFa in the same | | 505 | | time. For all these scenarios, no | | 506 | | problems have been encountered. The | | 507 | | downloading operations have | | 508 | | succeeded | | 509 | Test_5 | Both T1 and T2 are able to download | None | 510 | | distinct files from the BitTorrent | | 511 | | infrastructure | | 512 | Test_6 | Both T1 and T2 are able to download | None | 513 | | the same file located in several | | 514 | | seeders. No particular problem has | | 515 | | been encountered | | 516 | Test_7 | No problem has been encountered. | None | 517 | | Both T1 and T2 are able to download | | 518 | | TestCaenFRTa from RT1 | | 519 | | simultaneously. Note that at the | | 520 | | same time, mutual downloading by T1 | | 521 | | of portions of TestCaenFRTa already | | 522 | | downloaded by T2 (and vice versa) | | 523 | | have been noticed | | 524 | Test_8 | Not applicable | None | 525 | Test_9 | No problem has been encountered. | None | 526 | | Distinct files located in RT1 have | | 527 | | been successfully downloaded by T1 | | 528 | | (respectively T2) | | 529 | Test_10 | No problem has been encountered | None | 530 | Test_11 | Not applicable | Not | 531 | | | applicable | 532 | Test_12 | No problem has been encountered. | None | 533 | | RT1 has succeeded to download | | 534 | | simultaneously TestCaenFa (from T1) | | 535 | | and TestCaenFb (from T2) | | 536 +------------+--------------------------------------+---------------+ 538 First Configuration Obtained Results 540 5.2. Second Configuration: Multiple Connections with the same IP 541 address are disabled 543 The following table summarises the results of the aforementioned 544 tests as performed using the testbed described in Section 4. Note 545 that bt.allow_same_ip is positioned to FALSE. 547 +------------+-----------------------+-----------------------------------+ 548 | Test | Results | Comments | 549 | Identifier | | | 550 +------------+-----------------------+-----------------------------------+ 551 | Test_1 | No problems have been | None | 552 | | experienced | | 553 | Test_2 | Both T1 and T2 are | None | 554 | | able to upload | | 555 | | distinct torrent | | 556 | | files using the same | | 557 | | tracker and the same | | 558 | | server | | 559 | Test_3 | Only one machine can | The server ensures that only one | 560 | | upload a torrent file | single torrent file corresponding | 561 | | referring to the same | to the same file is listed in its | 562 | | file | base | 563 | Test_4 | Three scenarios have | None | 564 | | been tested: (1) T1 | | 565 | | downloads TestCaenFb | | 566 | | but T2 does not | | 567 | | download any file | | 568 | | from T1 (2) T2 | | 569 | | downloads TestCaenFa | | 570 | | but T1 does not | | 571 | | download any file | | 572 | | from T2 (3) T1 | | 573 | | downloads TestCaenFb | | 574 | | and T2 downloads | | 575 | | TestCaenFa in the | | 576 | | same time. For all | | 577 | | these scenarios, no | | 578 | | problems have been | | 579 | | encountered. The | | 580 | | downloading | | 581 | | operations have | | 582 | | succeeded | | 583 | Test_5 | Both T1 and T2 are | None | 584 | | able to download | | 585 | | distinct files from | | 586 | | the BitTorrent | | 587 | | infrastructure | | 588 | Test_6 | Both T1 and T2 are | When TestCaenFRT1 is used as | 589 | | able to download the | example. T1 and T2 are able to | 590 | | same file located in | download the same file. But for | 591 | | several seeders. No | each file it is sending (here | 592 | | particular problem | TestCaenFRT1) RT1 can allow no | 593 | | has been encountered | more than one unique connection | 594 | | | to the same address IP. This is | 595 | | | the same behaviour for RT2. T1 | 596 | | | and T2 exchanges the portions of | 597 | | | the files they stored | 598 | Test_7 | Both T1 and T2 are | This is because for each file it | 599 | | able to download the | is sending (here TestCaenFRTa) | 600 | | file but only one | RT1 can allow no more than one | 601 | | single connection is | unique connection to the same | 602 | | accepted by RT1 at | address IP. The result is that, | 603 | | the same time | once T1 (or T2) has begun to | 604 | | | download TestCaenFRTa, the other | 605 | | | terminal (T2 or respectively T1) | 606 | | | cannot get any portion of | 607 | | | TestCaenFRTa directly from RT1 | 608 | | | till the other (T1 or | 609 | | | respectively T2) has completed | 610 | | | the downloading of TestCaenFRTa. | 611 | | | However, that does not preclude | 612 | | | the waiting terminal (T2 or T1) | 613 | | | to download from the other | 614 | | | terminal (T1 or T2) portions of | 615 | | | TestCaenFRTa already downloaded | 616 | | | from RT1 | 617 | Test_8 | The test 8 has | While T1 has been downloading | 618 | | succeeded | TestCaenFRT1 from RT1, T2 could | 619 | | | download TestCaenFRTa from RT1 | 620 | | | and in addition it can get | 621 | | | portions of TestCaenFRTa already | 622 | | | downloaded by T1 | 623 | Test_9 | No problem have been | None | 624 | | experienced | | 625 | Test_10 | Both T1 and T2 are | The test failed because, once RT1 | 626 | | able to upload the | has begun to download portions of | 627 | | file, but only one | TestCaenF1 from T1 (respectively | 628 | | connection is | T2) it cannot accept additional | 629 | | accepted by RT1 at | connection with T2 for the same | 630 | | the same time | file | 631 | Test_11 | The test succeeded | Once T1 has completed its | 632 | | | downloading from RT1, T2 has been | 633 | | | able automatically to connect to | 634 | | | RT1 for receiving the portions of | 635 | | | TestCaenFRTa it has not already | 636 | | | got from T2 | 637 | Test_12 | No problem has been | None | 638 | | encountered. RT1 has | | 639 | | succeeded to download | | 640 | | simultaneously | | 641 | | TestCaenFa (from T1) | | 642 | | and TestCaenFb (from | | 643 | | T2) | | 644 +------------+-----------------------+-----------------------------------+ 645 Results: Multiple connections desiabled 647 6. Conclusions 649 This memo describes the main behaviour of BitTorrent service in an IP 650 shared address environment. Particularly, the tests have been 651 carried out on a testbed implementing [ID.boucadair-port-range] 652 solution. The results are, however, valid for all IP shared address 653 based solutions. 655 Two limitations were experienced. The first limitation occurs when 656 two clients sharing the same IP address want to simultaneously 657 retrieve the SAME file located in a SINGLE remote peer. This 658 limitation is due to the default BitTorrent configuration on the 659 remote peer which does not permit sending the same file to multiple 660 ports of the same IP address. This limitation is mitigated by the 661 fact that clients sharing the same IP address can exchange portions 662 with each other, provided the clients can find each other through a 663 common tracker, DHT, or Peer Exchange. Even if they can not, we 664 observed that the remote peer would begin serving portions of the 665 file automatically as soon as the other client (sharing the same IP 666 address) finished downloading. This limitation is eliminated if the 667 remote peer is configured with bt.allow_same_ip == TRUE. 669 The second limitation occurs when a client tries to download a file 670 located on several seeders, when those seeders share the same IP 671 address. This is because the clients are enforcing bt.allow_same_ip 672 parameter to FALSE. The client will only be able to connect to one 673 seeder, among those having the same IP address, to download the file 674 (note that the client can retrieve the file from other seeders having 675 distinct IP addresses). This limitation is eliminated if the local 676 client is configured with bt.allow_same_ip == TRUE, which is somewhat 677 likely as those clients will directly experience better throughput by 678 changing their own configuration. 680 Mutual file sharing between hosts having the same IP address has been 681 checked. Indeed, machines having the same IP address can share files 682 with no alteration compared to current IP architectures. 684 7. IANA Considerations 686 This document raises no IANA considerations. 688 8. Security Considerations 690 This memo does not introduce any security issue. 692 9. Acknowledgements 694 The authors would like to thank Dan WING for suggesting the writing 695 of this memo and for the review of the text. 697 10. References 699 10.1. Normative References 701 [RFC2026] Bradner, S., "The Internet Standards Process -- Revision 702 3", BCP 9, RFC 2026, October 1996. 704 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 705 Requirement Levels", BCP 14, RFC 2119, March 1997. 707 10.2. Informative References 709 [ID.bajko-v6ops-port-restricted-ipaddr-assign] 710 Bajko, G. and T. Savolainen, "Port Restricted IP Address 711 Assignment", Internet Draft, draft-bajko-v6ops-port- 712 restricted-ipaddr-assign-02.txt (work in progress), 713 November 2008. 715 [ID.boucadair-dhc-port-range] 716 Boucadair, M., Grimault, J-L., Levis, P., and A. 717 Villefranque, "DHCP Options for Conveying Port Mask and 718 Port Range Router IP Address", Internet 719 Draft, draft-boucadair-dhc-port-range-01.txt (work in 720 progress), October 2008. 722 [ID.boucadair-port-range] 723 Boucadair, M., Grimault, J-L., Levis, P., and A. 724 Villefranque, "Provider-Provisioned CPE: IPv4 Connectivity 725 Access in the context of IPv4 address exhaustion", 726 Internet Draft, draft-boucadair-port-range-00.txt (work in 727 progress), October 2008. 729 [ID.despres-sam] 730 Despres, R., "Stateless Address Mappings (SAMs) IPv6 & 731 extended IPv4 via local routing domains - possibly 732 multihomed", Internet Draft, draft-despres-sam-01.txt 733 (work in progress), November 2008. 735 [ID.durand-softwire-dual-stack-lite] 736 Durand , A., Droms, R., Haberman, B., and J. Woodyatt, 737 "Dual-stack lite broadband deployments post IPv4 738 exhaustion", Internet 739 Draft, draft-durand-softwire-dual-stack-lite-01.txt (work 740 in progress), November 2008. 742 [ID.ymbk-aplusp] 743 Maennel , O., Bush, R., Cittadini, L., and S. Bellovin , 744 "The A+P Approach to the Broadband Provider IPv4 Address 745 Shortage", Internet Draft, draft-ymbk-aplusp-01.txt (work 746 in progress), November 2008. 748 Authors' Addresses 750 Mohamed Boucadair (editor) 751 France Telecom 752 42 rue des Coutures 753 BP 6243 754 Caen Cedex 4 14066 755 France 757 Email: mohamed.boucadair@orange-ftgroup.com 759 Jean-Luc Grimault 760 France Telecom 762 Email: jeanluc.grimault@orange-ftgroup.com 764 Pierre Levis 765 France Telecom 767 Email: pierre.levis@orange-ftgroup.com 769 Alain Villefranque 770 France Telecom 772 Email: alain.villefranque@orange-ftgroup.com