Kudzu: A Decentralized and Self-Organizing Peer-to-Peer ... A Decentralized and Self-Organizing...

download Kudzu: A Decentralized and Self-Organizing Peer-to-Peer ... A Decentralized and Self-Organizing Peer-to-Peer

of 78

  • date post

    08-Aug-2020
  • Category

    Documents

  • view

    0
  • download

    0

Embed Size (px)

Transcript of Kudzu: A Decentralized and Self-Organizing Peer-to-Peer ... A Decentralized and Self-Organizing...

  • Kudzu:

    A Decentralized and Self-Organizing

    Peer-to-Peer File Transfer System

    by

    Sean K. Barker

    Jeannie Albrecht, Advisor

    A thesis submitted in partial fulfillment of the requirements for the

    Degree of Bachelor of Arts with Honors in Computer Science

    Williams College Williamstown, Massachusetts

    May 25, 2009

  • Contents

    1 Introduction 8 1.1 Goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.2 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.3 Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    2 Background 12 2.1 Networking Paradigms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2 P2P Paradigms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    2.2.1 Napster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2.2 Kazaa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.2.3 Gnutella . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.2.4 BitTorrent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.2.5 DHTs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

    2.3 Properties of P2P Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.3.1 Scalability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.3.2 Incentives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.3.3 Download Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    2.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    3 Kudzu: An Adaptive, Decentralized File Transfer System 22 3.1 Design Goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.2 Network Structure and Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

    3.2.1 Query Behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.2.2 Keyword Matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    3.3 Network Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.3.1 Organization Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.3.2 Naive Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.3.3 Fixed Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.3.4 TF-IDF Ranked Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.3.5 Machine Learning Classifier Policy . . . . . . . . . . . . . . . . . . . . . . . . 30

    3.4 Download Behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.4.1 File Identification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.4.2 Chunks and Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.4.3 Swarms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.4.4 Gossip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

    3.5 A Distributed Test Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.5.1 Simulating User Behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.5.2 Replayer Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

    3.6 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

    2

  • CONTENTS 3

    4 Implementation: The Kudzu Client 40 4.1 Communication Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

    4.1.1 Java RMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.1.2 Java Serialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.1.3 Protocol Buffers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.1.4 Kudzu Message Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.1.5 Connection Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

    4.2 Message Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.3 Test Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

    4.3.1 Data Parsing and Cleaning . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.3.2 Virtual User Assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.3.3 Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.3.4 Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.3.5 Bootstrapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    4.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    5 Evaluation 52 5.1 Evaluation Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

    5.1.1 Bandwidth Utilization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.1.2 Query Recall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.1.3 Download Speeds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

    5.2 Dataset Peer Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 5.3 Bandwidth Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 5.4 Organization Strategies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

    5.4.1 Policy Bandwidth Use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5.5 Query Recall Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

    5.5.1 Network Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 5.6 Download Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 5.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

    6 Conclusion 72 6.1 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

    6.1.1 Organization with Machine Learning Classifiers . . . . . . . . . . . . . . . . . 72 6.1.2 Incentive Model and Adversaries . . . . . . . . . . . . . . . . . . . . . . . . . 73 6.1.3 Testing Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 6.1.4 New Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 6.1.5 Anonymity and Privacy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

    6.2 Summary of Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

  • List of Figures

    2.1 Client-server network (left) and peer-to-peer network (right). . . . . . . . . . . . . . 13 2.2 Example Napster network. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.3 Example Kazaa network with three supernodes. . . . . . . . . . . . . . . . . . . . . . 15 2.4 Example BitTorrent network with two seeders and three leechers. . . . . . . . . . . . 17

    3.1 A non-optimal separating hyperplane H1 and an optimal separating hyperplane H2 with margin m. Test point T is misclassified as black by H1 but correctly classified as white by H2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

    3.2 A Kudzu network of 5 nodes containing 3 download swarms. Solid lines indicate peer connections, while dotted lines indicate swarm connections. . . . . . . . . . . . . . . 34

    4.1 User interaction with the Kudzu client. . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.2 One of Kudzu’s protocol buffer definitions. . . . . . . . . . . . . . . . . . . . . . . . . 43 4.3 Protocol buffer specification of base container message. . . . . . . . . . . . . . . . . . 44 4.4 Protocol buffer specification of all message payload types. . . . . . . . . . . . . . . . 48 4.5 An example dataset user entry with 1 file and 2 queries. . . . . . . . . . . . . . . . . 49

    5.1 Unique query ratios in a network with uncapped TTL. . . . . . . . . . . . . . . . . . 56 5.2 Aggregate bandwidth usage across a range of max TTL values. . . . . . . . . . . . . 57 5.3 Aggregate bandwidth usage versus max TTL for each of the four organization strategies. 58 5.4 Query recall versus max TTL for each of the four organization strategies. . . . . . . 60 5.5 Network topology resulting from naive organization. Note the weakly connected clus-

    ter in the upper right. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 5.6 Circular network topology resulting from naive organization with passive exploration. 64 5.7 Circular network topology resulting from naive organization with active exploration. 64 5.8 Naive organization with passive exploration and noted coverage gaps (shaded regions)

    and highly interconnected node groups (demarcated by lines). . . . . . . . . . . . . . 65 5.9 Circular network topology resulting from TFIDF organization with passive exploration. 67 5.10 Circular network topology resulting from TFIDF organization with active exploration. 67 5.11 Aggregate bandwidth usage versus max TTL including naive with active exploration. 68 5.12 Query recall versus max TTL including naive with active exploration. . . . . . . . . 68 5.13 Download completion CDFs for Kudzu and BitTorrent. . . . . . . . .