Desarrollo De Una Aplicación Bittorrent (En Pharo-Smalltalk)

Total Page:16

File Type:pdf, Size:1020Kb

Desarrollo De Una Aplicación Bittorrent (En Pharo-Smalltalk) Desarrollo de una aplicación BitTorrent (en Pharo-Smalltalk) Trabajo Final de Grado David Gracia Celemendi Director: Jordi Delgado Pin Departamento de Ciencias de la Computación (CS) Fecha de defensa: octubre de 2015 Titulación: Grado en Ingeniería Informática Especialidad: Computación Facultad de Informática de Barcelona (FIB) página en blanco 1 Resumen Desde principios del 2000, el uso de redes peer-to-peer ha experimentado un gran crecimiento. Gran parte del tráfico de Internet lo generan las apli- caciones BitTorrent. BitTorrent especifica un protocolo para el intercambio de ficheros usando un modelo peer-to-peer que se caracteriza por su gran escalabilidad y robustez. Este proyecto consiste en el desarrollo de una apli- cación BitTorrent desde cero con el sistema Pharo-Smalltalk. Primero se hace un repaso a la historia del intercambio de ficheros desde sus inicios hasta la actualidad. Después se comparan las redes cliente-servidor con las redes peer-to-peer, y se distingue dentro de éstas últimas entre redes estruc- turadas y redes no estructuradas. Se da una explicación del funcionamiento de BitTorrent y, por último, se profundiza en el diseño y la implementación de la aplicación. Abstract Since 2000 peer-to-peer networks use has increased very fast. Most Internet traffic is generated by BitTorrent applications. BitTorrent specify a file sharing protocol over peer-to-peer model whose strength is scalability and robustness. This project is about developing a BitTorrent application from scratch with Pharo-Smalltalk system. First of all, a file sharing history review is done from beginning up to now. Next, client-server and peer- to-peer models are compared, and peer-to-peer networks are classified in unstructured and structured. A brief summary of BitTorrent operation is done and, at the end, report go into detail about design and implementation of the application. Keywords. peer-to-peer, p2p, bittorrent, swarming, smalltalk, pharo. Agradecimientos Gracias a Jordi Delgado por su ayuda durante el desarrollo del proyecto y en la elabora- ción de la memoria. 2 Índice 1. Introducción 7 1.1. Formulación del problema . .7 1.2. Actores implicados . .8 1.3. Objetivos generales . .8 1.4. Objetivos técnicos . .8 1.5. Sobre el proyecto y el formato de la memoria . .9 2. Contexto 10 2.1. Redes peer-to-peer ........................... 10 2.1.1. Descubrimiento de recursos . 12 2.1.2. Aplicaciones . 14 2.2. Historia del intercambio de ficheros . 15 2.3. BitTorrent . 19 2.3.1. Funcionamiento . 19 2.3.2. Implementaciones existentes y últimos avances . 21 3. Metodología 22 3.1. Seguimiento . 22 3.2. Estilo de programación . 23 3.3. Validación del software ......................... 23 4. Visión global de la aplicación 23 5. Diseño e implementación 26 5.1. Bencoding . 26 5.2. Los metadatos . 28 5.3. Acceso físico a los torrents ....................... 29 5.4. Los nodos de la red . 31 5.5. Descubrimiento de peers . 31 5.5.1. Tracker HTTP . 31 5.5.2. Tracker UDP . 34 5.5.3. La clase BtMultitracker ................... 40 5.6. Control de las piezas . 41 5.7. Comunicación peer-to-peer ....................... 42 5.7.1. Mensajes . 42 5.7.2. Sistema de colas . 46 5.7.3. La clase BtRemotePeer ..................... 47 3 5.8. Piezas temporales . 49 5.9. Algoritmo de bloqueo . 50 5.10. Algoritmo de selección de piezas . 51 5.10.1. Rarest first . 51 5.10.2. Random . 51 5.10.3. Most common first . 52 5.10.4. Lower first . 52 5.11. End Game . 52 5.12. Conteo de las piezas en la red . 52 5.13. La clase BtRemotePeerCollection .................. 53 5.14. La clase BtTorrent ........................... 55 5.14.1. Proceso: Validación incial . 56 5.14.2. Proceso: Tracker requesting . 56 5.14.3. Proceso: Choking . 57 5.14.4. Proceso: Optimistic Choking . 58 5.14.5. Proceso: Tratamiento de mensajes entrantes . 59 5.14.6. Proceso: Petición de bloques . 60 5.15. La clase BtLocalPeer ......................... 62 5.15.1. Proceso: Escucha de puerto . 63 5.15.2. Proceso: Gestión de torrents .................. 64 5.15.3. Justificación de la necesidad de BtLocalPeer ......... 65 6. Planificación 66 6.1. Planificación inicial . 66 6.2. Modificaciones a la planificación inicial . 69 7. Presupuesto y sostenibilidad 69 7.1. Identificación de recursos y estimación de costes . 69 7.2. Viabilidad económica . 70 7.3. Impacto social y ambiental . 70 8. Conclusiones 71 9. Posibles ampliaciones 71 Adenda 73 A. Manual de usuario 73 A.1. Instalación de Pharo . 73 A.2. Ejecución de Pharo . 73 4 A.3. Importación de la librería . 74 A.4. Pruebas . 76 A.4.1. Pruebas unitarias . 76 A.4.2. Prueba global . 77 Acrónimos 80 Glosario 81 Referencias 88 5 Índice de figuras 1. BitTorrent. Proceso que siguen las propuestas de ampliación . .9 2. Comparación entre las arquitecturas cliente-servidor y peer-to-peer . 11 3. En Freenet, backtracking usado para encontrar un recurso . 12 4. Comparación topológica. Red peer-to-peer no estructurada. Red peer-to-peer estructurada . 13 5. Amiexpress . 15 6. Jerarquía de warez scene ........................ 16 7. Usenet . 17 8. Funcionamiento de una red BitTorrent . 19 9. Perspectiva del peer local en el enjambre . 20 10. Diagrama de clases simplificado de la aplicación . 24 11. Ejemplo de colección de ficheros de un torrent............. 30 12. Jerarquía de clases de los nodos de la red . 32 13. Jerarquía de clases de los paquetes UDP . 36 14. Diagrama de Gantt del proyecto . 68 15. Selección de imagen en Pharo (Linux Mint) . 74 16. Menú global de Pharo . 75 17. Añadir un repositorio HTTP público a Pharo . 75 18. Exploración del paquete BitTalk en Pharo . 76 19. Captura de imágen de Pharo mostrando cómo ejecutar todas las pruebas unitarias de una vez . 77 20. Ejecución del código de la prueba global . 78 Índice de tablas 1. Características. Redes no estructuradas y estructuradas . 14 2. Planificación de las tareas . 67 3. Presupuesto . 70 6 1. Introducción 1.1. Formulación del problema Este Trabajo de Fin de Grado (TFG) consiste en el desarrollo de una aplicación BitTorrent1 en el sistema Pharo-Smalltalk. BitTorrent es un protocolo diseñado para el intercambio de ficheros sobre una red peer-to-peer (P2P) que se usa para distribuir gran cantidad de información por Internet. Smalltalk es un estándar, públicamente disponible desde 1980[4], que define las especificaciones de un sistema computacional que dispone de una biblioteca (generalmente grande) de objetos que viven dentro del sistema y se comunican mediante mensajes; un fichero llamado «imagen» que contiene el estado del sistema; un lenguaje de programación (también llamado Smalltalk) completamente orientado a objetos, con tipado dinámico y reflexivo; un entorno de desarrollo, compilación y ejecución; y una máquina virtual que se encarga de interpretar todos los mensajes y actualizar el estado del sistema y los objetos. Se puede considerar a un sistema Smalltalk como un mundo virtual donde existen objetos «vivos» que se comunican. Estos objetos pueden ser creados, modificados y eliminados sin necesidad de detener o reiniciar el sistema. Una implementación de Smalltalk es cualquier sistema que cumpla las especi- ficaciones del estándar. La implementación que se va a usar en este proyecto es Pharo (versión 3.0). 1La expresión común para referirse a este tipo de programas es «cliente BitTorrent», pero es incorrecta porque en estas redes no existen los roles exclusivos de cliente y servidor: solo existen peers. En este documento se reserva el uso de «peer» para el concepto abstracto de nodo participante en la red, y el de «aplicación BitTorrent» para el programa que ejecutan los peers 7 1.2. Actores implicados Las siguientes personas están implicadas o se ven afectadas por el desarrollo del proyecto: Autor del proyecto: David Gracia Celemendi. Director del proyecto: Jordi Delgado Pin. Miembro del Consejo de Di- rección del European Smalltalk User Group (ESUG) y Coordinador de l’Associació Smalltalk.cat. Se encargará de supervisar los aspectos técnicos del proyecto. Comunidad de usuarios y desarrolladores de Pharo-Smalltalk. Se beneficiarán de la primera librería que implementa BitTorrent en esta co- munidad. La librería supondrá una base para desarrollar otros proyectos relacionados con BitTorrent y redes P2P. 1.3. Objetivos generales Los objetivos principales del proyecto son: Diseñar e implementar el conjunto de clases que representen la naturaleza y el funcionamiento de las redes BitTorrent. El diseño y la implementación deben ser fácilmente comprensibles y amplia- bles por cualquier desarrollador de Pharo-Smalltalk que conozca el funcio- namiento de BitTorrent. 1.4. Objetivos técnicos BitTorrent está compuesto por una serie de documentos llamados BitTorrent En- hancement Proposal (BEP) que detallan el funcionamiento del protocolo. Un BEP es una propuesta de ampliación de alguna parte de BitTorrent, que especifica una nueva funcionalidad o comportamiento de la red o de los actores implicados. Todos los BEP pueden encontrarse en http://www.bittorrent.org/beps/bep_0000. html. Estas propuestas están sujetas a un proceso de ampliación que establece que una propuesta debe pasar por unas fases antes de ser considerada definitiva por el Benevolent Dictator for Life (BDFL) y creador de BitTorrent, Bram Cohen. 8 Figura 1: Proceso que siguen las propuestas de ampliación Existen varios BEP utilizados por muchas aplicaciones BitTorrent que todavía se encuentran en fase de borrador (Draft) o solo han sido aceptados (Accepted) sin llegar a ser definitivos (Final). Incluso hay otros que, a pesar de no tener siquiera borrador, son utilizados en las aplicaciones BitTorrent más populares. Los objetivos técnicos del proyecto son implementar los siguientes BEP: BEP3 Núcleo de BitTorrent, en fase definitiva. BEP5 Implementa distributed hash table (DHT) para aumentar la descentraliza- ción de BitTorrent, en fase de borrador. 1.5. Sobre el proyecto y el formato de la memoria El desarrollo de la aplicación carece de análisis y especificación de requisitos ya que el protocolo ya está especificado y definido.
Recommended publications
  • Vysoké Učení Technické V Brně Detekcia Seedboxov V Sieti Bittorrent
    VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ FACULTY OF INFORMATION TECHNOLOGY ÚSTAV INFORMAČNÍCH SYSTÉMŮ DEPARTMENT OF INFORMATION SYSTEMS DETEKCIA SEEDBOXOV V SIETI BITTORRENT DETECTION OF SEEDBOXES INBITTORRENT NETWORK BAKALÁŘSKÁ PRÁCE BACHELOR’S THESIS AUTOR PRÁCE MARTIN GRNÁČ AUTHOR VEDOUCÍ PRÁCE Ing. LIBOR POLČÁK, Ph.D. SUPERVISOR BRNO 2018 Abstrakt Bakalárska práca sa venuje problematike sledovania a detekcie seedboxov v sieti BitTorrent za pomoci technológie netflow. V teoretickej časti je predstavená a popísaná architektúra P2P, základy a kľúčové pojmy architektúry BitTorrent a teoretická definícia seedboxu. Taktiež sú tu rozobrané metódy pomocou ktorých sa dá detekovať sieťová komunikácia a ďalej je uvedená analýza seedboxov v sieti a hľadanie ich charakteristík. Na základe týchto znalostí a sledovaní je navrhnutá sada nástrojov, ktoré napomáhajú ich detekcií. V praktickej časti je predstavená implementácia týchto nástrojov a výsledky ich testovania. Abstract Bachelor’s thesis is focused on issues with monitoring and detection of seedboxes in Bit- Torrent network with help of netflow technology. In the theoretical part of this thesis is introduced and described P2P architecture, basics and key terms of BitTorrent architec- ture and theoretical definition of seedbox. There are also described specific methods which can be used for detection of network communication and next there is described process of seedbox analysis in network and process of finding its characteristics. On base of this kno- wledge and observations is designed a set of tools,which help with detection of seedboxes. In the practical part of this work is presented implementation of these tools and results of testing these tools. Kľúčové slová BitTorrent, seedbox, detekcia, netflow, analýza, sieťová prevádzka, P2P, netflow Keywords BitTorrent, seedbox, detection, netflow, analysis, network traffic, P2P, netflow Citácia GRNÁČ, Martin.
    [Show full text]
  • Digital Fountain Erasure-Recovery in Bittorrent
    UNIVERSITÀ DEGLI STUDI DI BERGAMO Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica Classe n. 35/S – Sistemi Informatici Digital Fountain Erasure Recovery in BitTorrent: integration and security issues Relatore: Chiar.mo Prof. Stefano Paraboschi Correlatore: Chiar.mo Prof. Andrea Lorenzo Vitali Tesi di Laurea Specialistica Michele BOLOGNA Matricola n. 56108 ANNO ACCADEMICO 2007 / 2008 This thesis has been written, typeset and prepared using LATEX 2". Printed on December 5, 2008. Alla mia famiglia “Would you tell me, please, which way I ought to go from here?” “That depends a good deal on where you want to get to,” said the Cat. “I don’t much care where —” said Alice. “Then it doesn’t matter which way you go,” said the Cat. “— so long as I get somewhere,” Alice added as an explanation. “Oh, you’re sure to do that,” said the Cat, “if you only walk enough.” Lewis Carroll Alice in Wonderland Acknowledgments (in Italian) Ci sono molte persone che mi hanno aiutato durante lo svolgimento di questo lavoro. Il primo ringraziamento va ai proff. Stefano Paraboschi e Andrea Vitali per la disponibilità, la competenza, i consigli, la pazienza e l’aiuto tecnico che mi hanno saputo dare. Grazie di avermi dato la maggior parte delle idee che sono poi confluite nella mia tesi. Un sentito ringraziamento anche a Andrea Rota e Ruben Villa per l’aiuto e i chiarimenti che mi hanno gentilmente fornito. Vorrei ringraziare STMicroelectronics, ed in particolare il gruppo Advanced System Technology, per avermi offerto le infrastrutture, gli spa- zi e tutto il necessario per svolgere al meglio il mio periodo di tirocinio.
    [Show full text]
  • Osiris Secure Social Backup
    James Bown Osiris Secure Social Backup Computer Science Tripos, Part II Project St John’s College May 17, 2011 The cover page image is the hieroglyphic representation of the Ancient Egyptian god of the underworld, Osiris. His legend tells of how he was torn into pieces and later resurrected by bringing them together once again. The font used to generate this image was used with the kind permission of Mark-Jan Nederhof (http://www.cs.st-andrews.ac.uk/~mjn/). Proforma Name: James Bown College: St John’s College Project Title: Osiris – Secure Social Backup Examination: Computer Science Tripos, Part II Project Date: May 17, 2011 Word Count: 11,841 Project Originator: Malte Schwarzkopf Supervisor: Malte Schwarzkopf Original Aims of the Project To produce a distributed system enabling mutually beneficial peer-to-peer backup between groups of friends. Each user provides storage space on their personal machine for other users to back up their data. In exchange, they have the right to back up their own files onto their friends’ machines. I focus on the challenges of space efficient distribution and fault tolerant retrieval of data. The use of convergent encryption and a strict security policy maintains confidentiality of data. Work Completed All success criteria specified in the proposal have been not only fulfilled, but exceeded. I have implemented a concurrent and distributed peer-to-peer backup system that is able to send, retrieve and remove files from the network, recover from node failure or loss, and provide high security supporting convergent encryption. Finally, I have completed a number of additional extensions.
    [Show full text]
  • Henry Jenkins Convergence Culture Where Old and New Media
    Henry Jenkins Convergence Culture Where Old and New Media Collide n New York University Press • NewYork and London Skenovano pro studijni ucely NEW YORK UNIVERSITY PRESS New York and London www.nyupress. org © 2006 by New York University All rights reserved Library of Congress Cataloging-in-Publication Data Jenkins, Henry, 1958- Convergence culture : where old and new media collide / Henry Jenkins, p. cm. Includes bibliographical references and index. ISBN-13: 978-0-8147-4281-5 (cloth : alk. paper) ISBN-10: 0-8147-4281-5 (cloth : alk. paper) 1. Mass media and culture—United States. 2. Popular culture—United States. I. Title. P94.65.U6J46 2006 302.230973—dc22 2006007358 New York University Press books are printed on acid-free paper, and their binding materials are chosen for strength and durability. Manufactured in the United States of America c 15 14 13 12 11 p 10 987654321 Skenovano pro studijni ucely Contents Acknowledgments vii Introduction: "Worship at the Altar of Convergence": A New Paradigm for Understanding Media Change 1 1 Spoiling Survivor: The Anatomy of a Knowledge Community 25 2 Buying into American Idol: How We are Being Sold on Reality TV 59 3 Searching for the Origami Unicorn: The Matrix and Transmedia Storytelling 93 4 Quentin Tarantino's Star Wars? Grassroots Creativity Meets the Media Industry 131 5 Why Heather Can Write: Media Literacy and the Harry Potter Wars 169 6 Photoshop for Democracy: The New Relationship between Politics and Popular Culture 206 Conclusion: Democratizing Television? The Politics of Participation 240 Notes 261 Glossary 279 Index 295 About the Author 308 V Skenovano pro studijni ucely Acknowledgments Writing this book has been an epic journey, helped along by many hands.
    [Show full text]
  • Defense Against the Dark Arts of Copyright Trolling Matthew As G
    Loyola University Chicago, School of Law LAW eCommons Faculty Publications & Other Works 2018 Defense Against the Dark Arts of Copyright Trolling Matthew aS g Jake Haskell Follow this and additional works at: https://lawecommons.luc.edu/facpubs Part of the Civil Procedure Commons, and the Intellectual Property Law Commons Defense Against the Dark Arts of Copyright Trolling Matthew Sag &Jake Haskell * ABSTRACT: In this Article, we offer both a legal and a pragmaticframework for defending against copyright trolls. Lawsuits alleging online copyright infringement by John Doe defendants have accounted for roughly half of all copyright casesfiled in the United States over the past threeyears. In the typical case, the plaintiffs claims of infringement rely on a poorly substantiatedform pleading and are targeted indiscriminately at noninfringers as well as infringers. This practice is a subset of the broaderproblem of opportunistic litigation, but it persists due to certain unique features of copyright law and the technical complexity of Internet technology. The plaintiffs bringing these cases target hundreds or thousands of defendants nationwide and seek quick settlements pricedjust low enough that it is less expensive for the defendant to pay rather than to defend the claim, regardless of the claim's merits. We report new empirical data on the continued growth of this form of copyright trolling in the United States. We also undertake a detailed analysis of the legal andfactual underpinnings of these cases. Despite theirunderlying weakness, plaintiffs have exploited information asymmetries, the high cost of federal court litigation, and the extravagant threat of statutory damages for copyright infringement to leverage settlementsfrom the guilty and the innocent alike.
    [Show full text]
  • TI3800 Bachelorproject
    TI3800 Bachelorproject Android Tor Tribler Tunneling Final Report Authors: Supervisor: Rolf Jagerman Dr. Ir. Johan Pouwelse Laurens Versluis Project coach: Martijn de Vos Ir. Egbert Bouman June 23, 2014 Abstract Tribler is a decentralized peer-to-peer file sharing system. Recently the Tribler development team has introduced anonymous internet communication using a Tor-like protocol in their trial version. The goal of our bachelor project is to port this technology to Android devices. This is a challenging task because cross-compiling the necessary libraries to the ARM CPU architecture is uncharted territory. We have successfully ported all dependencies of Tribler to Android. An application called Android Tor Tribler Tunneling (AT3) has been developed that tests whether these libraries work. This application downloads a test torrent and measures information such as CPU usage and download speed. Based on this information we have concluded that it is currently not viable to run the anonymous tunnels on an Android smartphone. Creating circuits with several hops that use encryption is very computationally expensive and modern smartphones can hardly keep up. By using optimized cryptographic libraries such as gmp or with the recently announced ARMv8 architecture which supports hardware-accelerated AES encryption, creating such circuits might become possible. Preface This document describes the bachelor project we performed at the TU Delft. Without the help of certain people at the TU Delft (and outside), this project would not be possible. In particular, we would like to thank the following people: Johan Pouwelse, for his excellent guidance, deep insights and feedback. The Tribler team, for always being able to help us with problems and questions.
    [Show full text]
  • Credits in Bittorrent: Designing Prospecting and Investments Functions
    Credits in BitTorrent: designing prospecting and investments functions Ardhi Putra Pratama Hartono Credits in BitTorrent: designing prospecting and investment functions Master’s Thesis in Computer Science Parallel and Distributed Systems group Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology Ardhi Putra Pratama Hartono March 17, 2017 Author Ardhi Putra Pratama Hartono Title Credits in BitTorrent: designing prospecting and investment functions MSc presentation Snijderzaal, LB01.010 EEMCS, Delft 16:00 - 17:30, March 24, 2017 Graduation Committee Prof. Dr. Ir. J.A. Pouwelse (supervisor) Delft University of Technology Prof. Dr. Ir. S. Hamdioui Delft University of Technology Dr. Ir. C. Hauff Delft University of Technology Abstract One of the cause of slow download speed in the BitTorrent community is the existence of freeriders. The credit system, as one of the most widely implemented incentive mechanisms, is designed to tackle this issue. However, in some cases, gaining credit efficiently is difficult. Moreover, the supply and demand misalign- ment in swarms can result in performance deficiency. As an answer to this issue, we introduce a credit mining system, an autonomous system to download pieces from selected swarms in order to gain a high upload ratio. Our main work is to develop a credit mining system. Specifically, we focused on an algorithm to invest the credit in swarms. This is composed of two stages: prospecting and mining. In prospecting, swarm information is extensively col- lected and then filtered. In mining, swarms are sorted by their potential and then selected. We also propose a scoring policy as a method to quantify swarms with a numerical score.
    [Show full text]
  • A Privacy-Preserving Decentralized Storage with Payments Based on a Blockchain
    A Privacy-preserving Decentralized Storage with Payments Based on a Blockchain Dissertation zur Erlangung des Doktorgrades Dr. rer. nat. der Fakultat¨ fur¨ Ingenieurwissenschaften, Informatik und Psychologie der Universitat¨ Ulm Henning Johannes Gustav Kopp aus Villingen-Schwenningen 2018 Institut f¨urVerteilte Systeme Universit¨atUlm, Deutschland Amtierender Dekan: Prof. Maurits Ortmanns Gutachter: Prof. Frank Kargl Gutachter: Prof. Frederik Armknecht Tag der Promotion: 20.12.2018 Summary Recently, the paradigm of cloud storage has seen wide acceptance in industry and for personal use. One of its core principles is to outsource storage, such that users can be billed flexibly by their actual demand. However, outsourcing storage such as private data or business secrets leads to privacy problems, as control over the data is lost to the storage provider. This is intensified by the fact that often privacy is considered only as an afterthought in these systems and not integrated into the design from the beginning. Privacy-preserving alternatives to these centralized cloud storage providers are peer-to-peer systems like Freenet or GNUnet. In these systems, participants can donate storage to other users of the system. Privacy plays a vital role in these systems, as, e. g., participants are unable to access data of other users if they are not authorized to do so, even if the data of the other users resides on their own hard disk. However, these decentralized systems suffer from limited contribution due to a lack of incentives to participate. Naively enhancing these systems with the possibility of payments such that storage providers can earn money, infringes privacy, since tracing of payment flows provides links between users and their storage providers.
    [Show full text]
  • Connectivity Properties of Mainline Bittorrent DHT Nodes
    IEEE P2P'09 - Sept. 9-11, 2009 Connectivity Properties of Mainline BitTorrent DHT Nodes Raul Jimenez Flutra Osmani Bj¨orn Knutsson Royal Institute of Technology (KTH) ICT/TSLAB Stockholm, Sweden {rauljc, flutrao, bkn}@kth.se Abstract raises some concerns about the scalability and resilience of the technology. The birth and evolution of Peer-to-Peer (P2P) protocols Our work is part of the P2P-Next[1] project, which is have, for the most part, been about peer discovery. Napster, supported by many partners including the EBU2 who claims one of the first P2P protocols, was basically FTP/HTTP to have more than 650 million viewers weekly. In the face plus a way of finding hosts willing to send you the file. Since of such load, scalability and resilience become vital compo- then, both the transfer and peer discovery mechanisms have nents of the underlying technology. improved, but only recently have we seen a real push to In BitTorrent, content is distributed in terms of objects, completely decentralized peer discovery to increase scal- consisting of one or more files, and these objects are de- ability and resilience. scribed by a torrent-file. The clients (peers)participatingin Most such efforts are based on Distributed Hash Tables the distribution of one such object form a swarm. (DHTs), with Kademlia being a popular choice of DHT im- Aswarmiscoordinatedbyatracker,whichkeepstrack plementation. While sound in theory, and performing well of every peer in the swarm. In order to join a swarm, a peer in simulators and testbeds, the real-world performance of- must contact the tracker, which registers the new peer and ten falls short of expectations.
    [Show full text]
  • Master's Thesis
    MASTER'S THESIS Analysis of UDP-based Reliable Transport using Network Emulation Andreas Vernersson 2015 Master of Science in Engineering Technology Computer Science and Engineering Luleå University of Technology Department of Computer Science, Electrical and Space Engineering Abstract The TCP protocol is the foundation of the Internet of yesterday and today. In most cases it simply works and is both robust and versatile. However, in recent years there has been a renewed interest in building new reliable transport protocols based on UDP to handle certain problems and situations better, such as head-of-line blocking and IP address changes. The first part of the thesis starts with a study of a few existing reliable UDP-based transport protocols, SCTP which can also be used natively on IP, QUIC and uTP, to see what they can offer and how they work, in terms of features and underlying mechanisms. The second part consists of performance and congestion tests of QUIC and uTP imple- mentations. The emulation framework Mininet was used to perform these tests using controllable network properties. While easy to get started with, a number of issues were found in Mininet that had to be resolved to improve the accuracy of emulation. The tests of QUIC have shown performance improvements since a similar test in 2013 by Connectify, while new tests have identified specific areas that might require further analysis such as QUIC’s fairness to TCP and performance impact of delay jitter. The tests of two different uTP implementations have shown that they are very similar, but also a few differences such as slow-start growth and back-off handling.
    [Show full text]
  • Deluge-2.0.3
    deluge Documentation Release 2.0.3 Deluge Team June 12, 2019 CONTENTS 1 Contents 1 1.1 Getting started with Deluge.......................................1 1.2 How-to guides..............................................2 1.3 Release notes...............................................3 1.4 Development & community.......................................6 1.5 Development guide............................................ 11 1.6 Reference................................................. 21 i ii CHAPTER ONE CONTENTS 1.1 Getting started with Deluge This is a starting point if you are new to Deluge where we will walk you through getting up and running with our BitTorrent client. 1.1.1 Installing Deluge These are the instructions for installing Deluge. Consider them a work-in-progress and feel free to make suggestions for improvement. Ubuntu PPA Until the stable PPA is updated, the development version of Deluge can be used: sudo add-apt-repository-u ppa:deluge-team/stable sudo apt install deluge PyPi To install from Python PyPi, Deluge requires the following system installed packages: sudo apt install python3-pip python3-libtorrent python3-gi python3-gi-cairo gir1.2- ,!gtk-3.0 gir1.2-appindicator3 Install with pip: pip install deluge Windows Unfortuately due to move to GTK3 and Python 3 there is no installer package currently available for Windows. Intrepid users can install Deluge from seperate packages as detailed in issue #3201. 1 deluge Documentation, Release 2.0.3 macOS There is no .app package currently for macOS, but can try Deluge with homebrew. 1. Install Homebrew 2. Open a terminal. 3. Run the following to install required packages: brew install pygobject3 gtk+3 adwaita-icon-theme brew install libtorrent-rasterbar 4. To fix translations: brew link gettext--force 5.
    [Show full text]
  • 1 Tribler 3 1.1 Obtaining the Latest Release
    Tribler Documentation Release 7.5.0 Tribler devs Jan 29, 2021 CONTENTS 1 Tribler 3 1.1 Obtaining the latest release........................................3 1.2 Obtaining support............................................3 1.3 Contributing...............................................3 1.4 Packaging Tribler.............................................4 1.5 Submodule notes.............................................4 2 How to contribute to the Tribler project?5 2.1 Checking out the Stabilization Branch..................................5 2.2 Reporting bugs..............................................5 2.3 Pull requests...............................................6 3 Branching model and development methodology7 3.1 Branching model.............................................7 3.2 Release lifecycle.............................................7 3.3 Tags....................................................8 3.4 Setting up the local repo.........................................8 3.5 Working on new features or fixes....................................8 3.6 Getting your changes merged upstream.................................9 3.7 Misc guidelines.............................................. 10 4 Setting up your development environment 11 4.1 Windows................................................. 11 4.2 MacOS.................................................. 13 4.3 Linux................................................... 15 5 Building Tribler 17 5.1 Windows................................................. 17 5.2 MacOS.................................................
    [Show full text]