A Packet-Level Simulation and Emulation Platform for Bittorrent Journal of Applied Research and Technology, Vol
Total Page:16
File Type:pdf, Size:1020Kb
Journal of Applied Research and Technology ISSN: 1665-6423 [email protected] Centro de Ciencias Aplicadas y Desarrollo Tecnológico México Aguilar-Gonzalez, Alberto; Lozoya, Camilo; Ventura-Molina, Carlos; Castelló, Rodolfo; Román-Flores, Armando BiT-SiEm: A packet-level simulation and emulation platform for BitTorrent Journal of Applied Research and Technology, vol. 15, núm. 6, 2017, pp. 513-523 Centro de Ciencias Aplicadas y Desarrollo Tecnológico Distrito Federal, México Available in: http://www.redalyc.org/articulo.oa?id=47454151001 How to cite Complete issue Scientific Information System More information about this article Network of Scientific Journals from Latin America, the Caribbean, Spain and Portugal Journal's homepage in redalyc.org Non-profit academic project, developed under the open access initiative Available online at www.sciencedirect.com Journal of Applied Research and Technology Journal of Applied Research and Technology 15 (2017) 513–523 www.jart.ccadet.unam.mx Original BiT-SiEm: A packet-level simulation and emulation platform for BitTorrent ∗ Alberto Aguilar-Gonzalez , Camilo Lozoya, Carlos Ventura-Molina, Rodolfo Castelló, Armando Román-Flores Tecnologico de Monterrey, Campus Chihuahua, Mexico Received 20 October 2015; accepted 1 May 2017 Available online 11 December 2017 Abstract Simulation and emulation have been used by researchers to develop new network protocols and to test, modify and optimize existing ones; these experiments must imitate the heterogeneous nature of the Internet in a controllable environment suitable to answer what-if questions. BitTorrent is not the exception. In this paper, we present a simulation platform that allows the interaction of simulated and emulated peers; the BitTorrent protocol is implemented in the simulator with a high degree of detail in which any genuine BitTorrent implementation would seamlessly fit into the platform. To evaluate our platform, several experiments were completed with thousands of peers; then, we compared the results of these tests with two mathematical models to corroborate its correctness. © 2017 Universidad Nacional Autónoma de México, Centro de Ciencias Aplicadas y Desarrollo Tecnológico. This is an open access article under the CC BY-NC-ND license (http://creativecommons.org/licenses/by-nc-nd/4.0/). Keywords: BitTorrent simulation; BitTorrent emulation; Packet-level simulation 1. Introduction designed to share load in terms of bandwidth and computing power in a way that when a host is added not only its demand Peer-to-peer (P2P) systems have emerged as a simple yet for a service is aggregated, but also, it provides processing power effective solution for two main weaknesses of traditional and network resources that can be used directly or indirectly by client/server content sharing applications: scalability and reli- any of the hosts; this is why we also refer to them as peers ability. For starters, typical systems tend to suffer as the number since there is no clear distinction if it always acts as a client of hosts increases, which degrades quality of service (QoS) and or has a server role. Load balancing also improves reliability in some cases generate denial of service (DoS). In client/server since P2P systems do not depend on a single host; members of schemes providing some level of scalability implies high costs in these networks can be treated as servers or clients according to terms of infrastructure, management and maintenance (Aguilar, protocol-specific needs. Ege, Makki, & Bustos, 2007). Also, fault tolerance in these sce- Although there are several P2P content distribution systems narios is not easy to implement since servers become a single (Eger, Hoßfeld, Binzenhöfer, & Kunzmann, 2007) available on point of failure, and consequently, costs to have replicated ser- the Internet, BitTorrent has become the most used file sharing vices are higher as the number of hosts increases. Most P2P system and it accounts for a representative portion of Internet systems have the capability to solve these problems. traffic (Izal, Urvoy-Keller, Biersack, & Felber, 2004). Currently, In P2P systems scalability is enforced by balancing require- there are several studies on this P2P protocol, some of them focus ments of resources between hosts in the network, indeed, P2P on analytical models (Qiu & Srikant, 2004; Lin et al., 2007), protocols tend to function better as more peers join the system others on the study of real traces (Izal et al., 2004; Pouwelse, (Cohen, 2003; Lin, Fan, Lui, & Chiu, 2007). There systems are Garbacki, Epema, & Sips, 2005) and finally, some of them focus on research based on analysis via simulation of the protocol (Bharambe, Herley, & Padmanabhan, 2005; Bindal et al., 2006; ∗ Corresponding author. Eger et al., 2007; Katsaros, Kemerlis, Stais, & Xylomenos, 2009; E-mail address: [email protected] (A. Aguilar-Gonzalez). Microsoft, 2007). Of course, this list of studies is far from being Peer Review under the responsibility of Universidad Nacional Autónoma de México. exhaustive but gives us an idea of the varied interests of the https://doi.org/10.1016/j.jart.2017.05.009 1665-6423/© 2017 Universidad Nacional Autónoma de México, Centro de Ciencias Aplicadas y Desarrollo Tecnológico. This is an open access article under the CC BY-NC-ND license (http://creativecommons.org/licenses/by-nc-nd/4.0/). 514 A. Aguilar-Gonzalez et al. / Journal of Applied Research and Technology 15 (2017) 513–523 research community in this matter. In this paper, the research these later. Fairness is accomplished using a tit-for-tat approach focus is on the simulation and emulation of BitTorrent. (Cohen, 2003), that is, a peer shares data with other hosts that Simulation has been used by researchers to develop new are also willing to contribute at similar rates. protocols and to test, modify and optimize existing ones. To To start, it is necessary to clarify some concepts related to accomplish these purposes, the scientific community has devel- BitTorrent. Hosts are generally referred as peers and mentioned oped a wide range of tools in order to facilitate this creative indistinctly. A peer may be either downloading data from other process. Since most of these applications and protocols were hosts or uploading information to other peers. We say that a peer designed to be used on the Internet, simulators must mimic the becomes a seed once it has a complete copy of the file being heterogeneous nature of this network in a controllable environ- made available. In BitTorrent, a file is divided into fragments ment suitable to answer what-if questions. Similarly, research called pieces, and then reassembled as these are received; the tools must support configuration of large-scale experiments to purpose of breaking a file is to distribute small blocks without the imitate how a system would behave during the interaction of a need of a sequential send/receive process; this feature accelerates vast number of hosts. the downloading process by obtaining pieces that are already Furthermore, if we need realism during the development or available from known connected peers. improvement of network protocols it is necessary to have tools A torrent is a file that contains meta data about the files being that allow interaction of real applications with the simulation shared including name, sizes and checksums of all the pieces in platform. With these capabilities, researchers are able to test the torrent; these checksums are done using the One Way Hash and debug a system not only in terms of some specification, but Function SHA1 to avoid piece tampering; in addition, this torrent also considering how a running application would perform. file contains the URL of the tracker, which is an special host in Given this, we are confident that experiments with any proto- charge of keeping membership of the swarm. Finally, a swarm col must run in controllable environments to be evaluated with is the set of peers interested in a specific torrent. different parameters, but also have a level of immersion that only real applications can provide by means of emulation. 2.1.1. Overall operation Of course, BitTorrent is not an exception, there are several In Figure 1, a flow diagram with the overall operation of this BitTorrent simulators available (Naicken, Basu, Livingston, & protocol is shown. A peer that needs to join a swarm must have Rodhetbhai, 2006), however, our survey indicates that none of the corresponding torrent file in order to contact the tracker. them are able to exchange information with genuine implemen- Then, this latter receives a request from a peer and sends back tations of the protocol and most of them have been tested on a random list of IP and ports of other hosts that are part of the small to medium network scenarios. swarm. With this list of hosts, a peer establishes TCP connections In this paper we present a simulator with emulation capa- with a sufficient number of them; these connected peers are bilities built on top of PRIME (Liu, 2008), a parallel real-time known as neighbors. In parallel, two other processes take place: simulator, which has these desired properties. choking (Cohen, 2003) and connections monitoring; this link 2. Background In this section we discuss three topics of interest for the study Join swarm by contacting the presented throughout this paper. First, a description of the Bit- tracker, and obtain a list of random peers Torrent P2P protocol is given: an overview and basic operation, the protocols that are part of it are presented and, also an expla- nation of its main algorithms and mechanisms is provided to Establish connection Start choking understand some of the complexity of simulating and emulat- Monitor connections with peers algorithm ing the protocol. Second, we provide a survey of some of the [ no ] available BitTorrent research studies. And finally, we explain Need PRIME, a platform for real-time simulation and emulation of File Start [ yes ] more complete seed role peers? large networks, which is used as our primary tool to achieve a ? large-scale simulator and emulator for BitTorrent.