Document 7617613

Download Report

Transcript Document 7617613

BitTorrent

Μαρίνα Δρόσου Μυρτώ Ντέτσικα Γρηγόριος Τζώρτζης

Εισαγωγή

 Πρόκειται για ένα κεντρικοποιημένο, αδόμητο p2p σύστημα.

 Στόχος είναι η δημιουργία αντιγράφων ενός αρχείου σε όλους τους κόμβους που το ζητούν.

 Η πρόκληση είναι η μεγιστοποίηση της ταχύτητας δημιουργίας αντιγράφων.

Ορολογία

Tracker

: Ένας server που κρατά πληροφορία για το ποιοι peers έχουν κάθε αρχείο.

Seeder

: Ένας peer που διαθέτει ένα πλήρες αντίγραφο του αρχείου.

Leecher

: Ένας peer που διαθέτει ένα μέρος του αρχείου.

Αρχεία .torrent

 Σε κάθε αρχείο που υπάρχει στο δίκτυο αντιστοιχεί ένα αρχείο .torrent.

 Το αρχείο αυτό περιέχει:  Το όνομα του αρχείου  Το μέγεθός του  Το URL του tracker που το διαχειρίζεται  Το μέγεθος διάφορων κομματιών του αρχείου και ένα hash code για καθένα από αυτά  Τα αρχεία αυτά δημοσιεύονται σε κάποιον web server.

Downloading

 Εύρεση αρχείου .torrent στο Internet.

 Επικοινωνία με τον αντίστοιχο tracker.

 Λήψη από τον tracker μίας τυχαίας λίστας με peers που διαθέτουν κομμάτια του αρχείου (~50 peers).

 Άμεση επικοινωνία με τους peers και ανταλλαγή κομματιών του αρχείου.

 Στρατηγική tit-for-tat.

 O tracker δε συμμετέχει στην ανταλλαγή δεδομένων.

Παράδειγμα

Web Server Tracker Leecher Leecher Seeder

Διάσπαση αρχείων

 Τα αρχεία χωρίζονται σε κομμάτια (συνήθως 256 ΚΒ).

 Τα κομμάτια χωρίζονται σε τμήματα (των 16 ΚΒ).

 Περισσότερες από μία αιτήσεις σε αναμονή σε κάθε TCP connection (pipelining).

 Καλύτερη αξιοποίηση του TCP.

Επιλογή τμημάτων (1)

Η επιλογή τμημάτων για download βασίζεται στα εξής: 

Strict priority

: Πρώτα κατεβάζουμε όλα τα τμήματα ενός κομματιού πριν ζητήσουμε το επόμενο κομμάτι.

 Έτσι κατεβάζουμε γρήγορα ολόκληρα κομμάτια.

Random First Piece

: Στην αρχή επιλέγουμε και κατεβάζουμε ένα τυχαίο κομμάτι του αρχείου.

 Στην αρχή είναι σημαντικό να αποκτήσουμε κάποια κομμάτια ώστε να μπορούμε να τα διαθέσουμε σε άλλους και να κάνουμε download από αυτούς (tit-for-tat).

Επιλογή τμημάτων (2)

Η επιλογή τμημάτων για download βασίζεται στα εξής: 

Rarest First Piece

: Στη συνέχεια επιλέγουμε τα κομμάτια που είναι λιγότερο διαθέσιμα.

 Μικρότερη πιθανότητα να χαθούν κομμάτια από το δίκτυο.

 Καλύτερο upload.

Endgame mode

: Το τελευταίο κομμάτι το ζητούμε ταυτόχρονα από όλους τους peers.

 Ταχύτερη ολοκλήρωση του αρχείου.

Choking

Choking

: Άρνηση για upload.

  Υλοποιεί το tit-for-tat, καταπολεμώντας το free-riding.

H TCP σύνδεση δεν καταργείται.

 Κάθε peer κάνει unchoke 4 άλλους peers με βάση το ρυθμό download από αυτούς.

 Αυτοί επιλέγονται κάθε 10 sec.

 Επομένως οι peers με καλό upload έχουν και καλό download.

Optimistic Unchocking

 Με το μηχανισμό του choking:  Οι peers δεν ανακαλύπτουν πάντα τις καλύτερες συνδέσεις.

 Οι νέοι peers δεν μπορούν να κάνουν download καθώς επειδή δεν έχουν κομμάτια για upload γίνονται choked.

 Για αυτόν το λόγο, κάθε peer κάνει unchoke έναν τυχαίο peer, ανεξάρτητα του ρυθμού download.

 Αυτός επιλέγεται κάθε 30 sec.

Anti-snubbing

 Αν κάποιος peer γίνει choked από όλους τους άλλους δεν μπορεί να συνεχίσει το download.

 Μετά την πάροδο 60 sec χωρίς να λαμβάνει δεδομένα, ο peer θεωρεί ότι είναι snubbed.

 Σε αυτή την περίπτωση κάνει περισσότερα optimistic unchokes.

 Ταχύτερη εύρεση καλύτερων συνδέσεων.

Seeders

 Σε αντίθεση με τους leechers, οι seeders δεν κάνουν download.

 Επομένως δεν μπορούν να επιλέξουν ποιους peers θα κάνουν unchoke με βάση το ρυθμό download.

 Επιλέγουν με βάση το ρυθμό upload.

 Καλύτερη εκμετάλλευση πόρων.

Επεκτάσεις

 Έχουν αρχίσει να υλοποιούνται και παραλλαγές του BitTorrent που δεν απαιτούν την ύπαρξη tracker.

 Το σύστημα παύει να είναι κεντρικοποιημένο.

 Οι peers οργανώνονται σε ένα DHT.

 Δημιουργούνται εξειδικευμένες μηχανές αναζήτησης για την εύρεση αρχείων .torrent στο Internet.

Αναφορές

[1] B. Cohen, Incentives Build Robustness in BitTorrent [2] Μ. Izal, G. Urvoy-Keller, E. W. Biersack, P. A. Felber, A. Al Hamra, L. Garces-Erice, Dissecting BitTorrent: Five Months in

a Torrent's Lifetime

[3] Wikipedia entry: http://en.wikipedia.org/wiki/BitTorrent [4] The Bittorrent Protocol Presentation:

http://mnl.cs.stonybrook.edu/home/karthik/BitTorrent/BTov erview.ppt