160 likes | 318 Views
BitTorrent. Μαρίνα Δρόσου Μυρτώ Ντέτσικα Γρηγόριος Τζώρτζης. Εισαγωγή. Πρόκειται για ένα κεντρικοποιημένο, αδόμητο p2p σύστημα. Στόχος είναι η δημιουργία αντιγράφων ενός αρχείου σε όλους τους κόμβους που το ζητούν. Η πρόκληση είναι η μεγιστοποίηση της ταχύτητας δημιουργίας αντιγράφων.
E N D
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 .torrent request Get-announce .torrent Peer list connect Leecher pieces connect pieces pieces Seeder Leecher
Διάσπαση αρχείων • Τα αρχεία χωρίζονται σε κομμάτια (συνήθως 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. • Αυτός επιλέγεται κάθε 30sec.
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/BToverview.ppt