Peer-to-Peer and Overlay Networks

Similar documents
The emule Protocol Specification

SQLite Server - About

Cisco Unified Operating System Administration Web Interface

Cisco Unified Operating System Administration Web Interface for Cisco Emergency Responder

Table of Contents 1 IKE 1-1

How to Create a TINA VPN Tunnel between F- Series Firewalls

Transport Level Security

Sample excerpt. Virtual Private Networks. Contents

VPN Ports and LAN-to-LAN Tunnels

AN IPSWITCH WHITEPAPER. The Definitive Guide to Secure FTP

Internet Protocol Stack! Principles of Network Applications! Some Network Apps" (and Their Protocols)! Application-Layer Protocols! Our goals:!

FUNCTIONALITY INTRODUCTION... 2 ESTABLISHING THE COMMUNICATION CONNECTION... 2 MENU BAR... 6 FILE UPLOAD... 7

FUNCTIONALITY. 02/2018 v1.01 Outcome and Assessment Information Set (OASIS) FUNCTIONALITY 3-1 Submission User s Guide

Service Managed Gateway TM. Configuring IPSec VPN

ICS 351: Networking Protocols

IKE. Certificate Group Matching. Policy CHAPTER

Lesson 9 Applications of DHT: Bittorrent Mainline DHT, the KAD network

Grandstream Networks, Inc. GWN7000 Multi-WAN Gigabit VPN Router VPN Configuration Guide

Wireless Terminal Emulation Advanced Terminal Session Management (ATSM) Device Management Stay-Linked

Start Creating SSL Policies

No, the bogus packet will fail the integrity check (which uses a shared MAC key).!

Napster: More Dissected

First and Second Generation Peer to Peer Networks

HP Load Balancing Module

Chapter 2: Application layer

Ref: A. Leon Garcia and I. Widjaja, Communication Networks, 2 nd Ed. McGraw Hill, 2006 Latest update of this lecture was on

How to Configure BGP over IKEv2 IPsec Site-to- Site VPN to an Google Cloud VPN Gateway

SIAC Securities Industry Automation Corporation

Department of Computer Science Institute for System Architecture, Chair for Computer Networks. File Sharing

Unofficial IRONTON ITSP Setup Guide

Overview Computer Networking Lecture 17: Delivering Content Peer to Peer Examples Peter Steenkiste

06/02/ Local & Metropolitan Area Networks. 0. Overview. Terminology ACOE322. Lecture 8 Network Security

Telematics Chapter 9: Peer-to-Peer Networks

ETSF10 Internet Protocols Transport Layer Protocols

Viber Encryption Overview

Defining IPsec Networks and Customers

Zultys Advanced Communicator ZAC 2.0 User Manual

CCNA 1 Chapter 10 v5.0 Exam Answers 2013

NOTE: If you encounter difficulties connecting to CMSNet, contact the CMSNet Help Desk at (888)

Vidyo Server for WebRTC. Administrator Guide

NOTE: If you encounter difficulties connecting to CMSNet, contact the CMSNet Help Desk at (888)

Welcome to your LIVE EMS Online Training!

Internet Layers. Physical Layer. Application. Application. Transport. Transport. Network. Network. Network. Network. Link. Link. Link.

Configuring SSL. SSL Overview CHAPTER

Interface Reference. McAfee Application Control Windows Interface Reference Guide. Add Installer page. (McAfee epolicy Orchestrator)

Lecture 21 P2P. Napster. Centralized Index. Napster. Gnutella. Peer-to-Peer Model March 16, Overview:

How to Configure a Remote Management Tunnel for an F-Series Firewall

Amazing Reminders User Guide

Infodraw MRS Server Web Administration Interface

Viewing Capture ATP Status

TABLE OF CONTENTS. Author Guide

Networking interview questions

CCNA Exploration Network Fundamentals. Chapter 03 Application Functionality and Protocols

Cisco Unified Communications Operating System Administration Guide for Cisco Unity Connection Release 12.x

User Datagram Protocol

Yealink VCS Network Deployment Solution

Internet Architecture & Performance. What s the Internet: nuts and bolts view

CS519: Computer Networks

Configuring SSL. SSL Overview CHAPTER

Dispatch Console Installation & User Guide. Release

SonicOS Standard Release Notes SonicWALL, Inc. Software Release: June 4, 2009

T-TeleSec LineCryptConfig User's Guide

File submissions to VINN and KRITA

CMSC 332 Computer Networks P2P and Sockets

Computer Science 385 Design and Analysis of Algorithms Siena College Spring Lab 8: Greedy Algorithms Due: Start of your next lab session

Networks Fall This exam consists of 10 problems on the following 13 pages.

Virginia Henderson Global Nursing e-repository ( Henderson repository or the repository ) Revision and Re-Submission Instructions

Computer Science 461 Midterm Exam March 14, :00-10:50am

VII. Corente Services SSL Client

UIP1869V User Interface Guide

Network Security and Cryptography. 2 September Marking Scheme

Grapevine web hosting user manual. 12 August 2005

P2P Applications. Reti di Elaboratori Corso di Laurea in Informatica Università degli Studi di Roma La Sapienza Canale A-L Prof.ssa Chiara Petrioli

Punctual Dicom Workstation

Network Security CSN11111

Virginia Henderson Global Nursing e-repository ( Henderson Repository or the repository ) Eleven-Step Instruction Guide for Submissions

Managing Firewall Services

Question 1 (6 points) Compare circuit-switching and packet-switching networks based on the following criteria:

User Manual. SSV Remote Access Gateway. Web ConfigTool

Networking: Network layer

FreeBSD Portsnap. What (it is), Why (it was written), and How (it works) Colin Percival The FreeBSD Project

CSCI 466 Midterm Networks Fall 2013

rat Comodo EDR Software Version 1.7 Administrator Guide Guide Version Comodo Security Solutions 1255 Broad Street Clifton, NJ 07013

Displaying SSL Configuration Information and Statistics

-CONTINUE ON NEXT PAGE-

ECE 435 Network Engineering Lecture 9

Welcome to Client Access Web!

Dropping Packets in Ubuntu Linux using tc and iptables

Configuring SSL CHAPTER

Chapter 2 - Part 1. The TCP/IP Protocol: The Language of the Internet

CSE 473 Introduction to Computer Networks. Midterm Exam Review

New Features Guide EventTracker v6.2

Bulk Interac e-transfers User Guide. User Guide Bulk Interac e-transfers 1

BitTorrent. Masood Khosroshahy. July Tech. Report. Copyright 2009 Masood Khosroshahy, All rights reserved.

Today CSCI Coda. Naming: Volumes. Coda GFS PAST. Instructor: Abhishek Chandra. Main Goals: Volume is a subtree in the naming space

Chapter 4: network layer. Network service model. Two key network-layer functions. Network layer. Input port functions. Router architecture overview

Lecture 17: Peer-to-Peer System and BitTorrent

INDeX Agent Assist Administration Manual

Dell License Manager Version 1.2 User s Guide

Student ID: CS457: Computer Networking Date: 5/8/2007 Name:

Transcription:

The emule 1 ricardo.pereira@inesc-id.pt IST 17-9-2014 1 Images from The emule Specification, Yoram Kulbak and Danny Bickson

1 High level Granularity 2 3 Queue management Part selection

emule High level Granularity emule is the most popular implementation of the edonkey 2000 protocol, which includes a few extensions The network contains a set of independent servers There isn t a single P2P network but a set of them, which may intercept Clients use both TCP and UDP according to the task being executed

emule High level Granularity Servers: Are independent, do not communicate among themselves Are the network entry point Supply clients with a list of other servers. This list is defined by the server operators Make available a file search service Supply information about peers connected to the same server sharing the same file Make possible communicating with peers behind firewalls

emule High level Granularity Clients: Share files among themselves Maintain a connection to one server using TCP May query other servers using UDP Transfer files using TCP May query other peers using UDP Share information about servers, peers and files among themselves

Network example High level Granularity

File transmission High level Granularity Files: Are divided into parts (9,28MB) The sharing unit is the full part Peers share file parts, even if they don t yet have the full file Parts are divided into chunks (180KB)

TCP connection to server and back! Clients connect to a single server, using TCP Login states GUID, TCP listening port, protocol version, user nick... Server attempts to establish back a new connection, in order to test peer s ability to receive connections If successful, server responds with an High ID (peer IP)

Clients unable to receive connections Server responds with low id. Server message contains warning text, stating limitations Servers present two limits, (soft and hard) for the number of supported clients. After reaching the soft limit, no more low ID peers are accepted

Session start Client supplies list of shared files, which it may have to update during the session Client requests list of alternative servers Server provides status information (number of clients and servers) Server sends welcome text message

Session start Server supplies list of servers Server states name, version and comments Client requests peers sharing the files it wants to download Server supplies partial list of the peers it knows

File description For each of the shared files, the client states: ID Name Size Type (audio, video, images,...) (optional) Length (opcional) Bitrate (opcional) Codec (opcional)

Other servers - UDP server state Clients communicate with other servers in order to learn their state/existence. UDP messages limited to: 10 mgs/s in total 1 msg each 5s per server Servers which do not respond x times in a row are discarded. Reply returns random value sent in the request

File search Client sends search request Server sends reply After finding the intended file, user starts download. Client requests sources Server sends stats (number of clients and files) Server sends set of sources

File search When performing a search, the user may state: Search string (with logical operators). Sent using prefix notation File type (optional) Minimum and maximum file size (optional) Availability (minimum number of known sources) (optional) File extension (optional) When it receives a set of sources, the client adds them to its list. Peers are contacted in the order they are learned

UDP Enhanced file search Client may extend the file search to several servers, using UDP May search for files or sources Sent simultaneously to several servers Server only answers if it has data to send (UDP) File search decided by user Source search automatic when known sources are inferior to 100 No more than 1 msg/s

Connecting to another peer Client identifies itself and indicates to which server it is connected emule extension indicates support for: UDP, secure ID, peer exchange, compression Only one connection between two peers Connection closed after 40s of inactivity

Connecting to low ID peers A high ID peer may, using the server, request a low ID peer to connect back. This allows NAT and firewalls to be circumvented.

Verifying a file existence Client which started connection indicates the file it wants Other responds whether it has the file and which parts it has May request list of known sources (peer exchange) Files are identified using 16B file hash (MD4) Peer may request root hash (part hashes)

Download request After confirming existence of file, peer requests download Uploading peers assigns score to request Request queued If it s not its turn to be served, it will have to wait

Download start Download may start when request reaches the top positions of the queue If peer isn t connected, uploader will connect back Client pipelines requests (up to 3 outstanding chunks) If downloader already has the file, it will cancel the request

Transmitting file parts Sending part messages carry 5 to 15KB Messages may be compressed Requests to a peer are all for the same part

UDP Periodic Download request Sent every 20 minutes Reply may be queue position Reply may be queue full Reply may be file not found

Credit system Queue management Part selection Secure identification Client uses a random 16B value as ID. Each has a RSA private/public key. Public keys are exchanged on the first connection between two peers. Secure signatures allow peers to trust each others and remember past file exchanges. Credits are accounted individually between each pair of peers Credit Value from 1 to 10, calculated as the minimum of (units of MB): uploaded total 2 downloaded total uploaded total + 2

Upload queue Queue management Part selection Number of upload slots limited to ensure a minimum of 2,4KB/s/slot Slots assigned to the top positions of the queue Clients sorted by score score = (rating queued time seconds)/100 rating = initial rating credit file priority initial rating is 0 for banned users initial rating is for friends initial rating is usually 100 initial rating is 200 during the first 15 minutes after being assigned an upload slot file priority is user defined (from 0.3 to 1.8)

Part selection Queue management Part selection The requested part is chosen according to the following criteria (decreasing importance): Part rarity (discrete: very rare, rare and common) Parts which allow previewing the file (first and last) Parts which aren t being downloaded from another source Parts whose download is closer to terminate After downloading a part, its checksum is verified. Should it fail, the peer will attempt to replace chunks sequentially until the checksum becomes valid. Chucksum is a SHA1 hash over each file part. It is called root hash

Question Queue management Part selection Any doubts?