1Sep

Πώς ένας πελάτης Bittorrent αρχικά ανακαλύπτει τους συνομηλίκους του;

Όταν ο πελάτης torrent συνδέεται με το σμήνος για να μοιραστεί και να συγκεντρώσει κομμάτια αρχείων, πώς ακριβώς ξέρει πού είναι όλοι οι συνομήλικοί του;Διαβάστε παρακάτω καθώς περνάμε μέσα από τους μηχανισμούς που βρίσκονται κάτω από το πρωτόκολλο BitTorrent.

Η σημερινή ερώτηση &Η συνάντηση απαντήσεων έρχεται με την ευγένεια του SuperUser - μια υποδιαίρεση του Stack Exchange, μια κοινότητα-καθοδηγούμενη ομαδοποίηση Q & A ιστοσελίδες.

Η ερώτηση

Reader SuperUser Steve V. είχε μια πολύ συγκεκριμένη ερώτηση σχετικά με το σύστημα Distributed Hash Table( DHT) στο πρωτόκολλο BitTorrent:

Έχω ήδη διαβάσει αυτή την απάντηση SuperUser και αυτό το άρθρο της Wikipedia αλλά και οι δύο είναι πολύ τεχνικές για μένα πραγματικάτυλίξτε το κεφάλι μου γύρω.

Κατανοώ την ιδέα ενός ιχνηλάτη: οι πελάτες συνδέονται με έναν κεντρικό εξυπηρετητή ο οποίος διατηρεί μια λίστα με συνομηλίκους σε ένα σμήνος.

Καταλαβαίνω επίσης την ιδέα της ανταλλαγής ομοτίμων: οι πελάτες που βρίσκονται ήδη σε ένα σμήνος στέλνουν τον πλήρη κατάλογο των συνομηλίκων τους ο ένας στον άλλο.Αν ανακαλυφθούν νέοι συνομηλίκοι, προστίθενται στον κατάλογο.

Η ερώτησή μου είναι πώς λειτουργεί η DHT;Δηλαδή, πώς μπορεί ένας νέος πελάτης να συμμετάσχει σε ένα σμήνος χωρίς έναν ιχνηλάτη ή τη γνώση τουλάχιστον ενός μέλους του σμήνους για να ανταλλάξουν συμμαθητές;

( Σημείωση: οι απλές επεξηγήσεις είναι καλές.)

Η ερώτησή του με τη σειρά του προκάλεσε μια πραγματικά λεπτομερή απάντηση σχετικά με τις διάφορες λειτουργίες του συστήματος BitTorrent.ας ρίξουμε μια ματιά σε αυτό τώρα.

Ο συνεργάτης της απάντησης

SuperUser Allquixotic προσφέρει μια εις βάθος εξήγηση:

Πώς μπορεί ένας νέος πελάτης να ενταχθεί σε ένα σμήνος χωρίς να έχει εντοπισμό είτε μια γνώση τουλάχιστον ενός μέλους του σμήνους για να ανταλλάξει συνομηλίκους;

Δεν μπορείτε.Είναι αδύνατο. *

* ( Εκτός αν ένας κόμβος στο τοπικό σας δίκτυο συμβαίνει ήδη να είναι ένας κόμβος στο DHT, τότε θα μπορούσατε να χρησιμοποιήσετε έναν μηχανισμό εκπομπής, όπως το Avahi, για να «ανακαλύψετε» αυτό το peer, και bootstrap από αυτές.Αλλά πώς bootstrap τους εαυτούς τους; , Τελικά, θα χτυπήσει μια κατάσταση όπου πρέπει να συνδεθείτε με το δημόσιο διαδίκτυο.Και το δημόσιο διαδίκτυο είναι unicast μόνο, όχι multicast, έτσι είστε κολλημένοιμε χρήση προκαθορισμένων καταλόγων συνομηλίκων.)

Αναφορές

Το Bittorrent DHT υλοποιείται μέσω πρωτοκόλλου γνωστού ως Kademlia, το οποίο αποτελεί μια ειδική περίπτωση θεωρητικής έννοιας ενός κατανεμημένου κατακερματισμού.

Έκθεση

Με το πρωτόκολλο Kademlia, όταν μπείτε στο δίκτυο, ξεκινάτε μια διαδικασία bootstrapping, η οποία απαιτεί απόλυτα να γνωρίζετε εκ των προτέρων , τη διεύθυνση IP και τη θύρα τουλάχιστον ενός κόμβου που συμμετέχει ήδη στο δίκτυο DHT.Ο ιχνηλάτης στον οποίο συνδέεστε, για παράδειγμα, μπορεί να είναι ο ίδιος ένας κόμβος DHT.Αφού συνδεθείτε σε έναν κόμβο DHT, προχωράτε στη λήψη πληροφοριών από το DHT, το οποίο σας παρέχει πληροφορίες συνδεσιμότητας για περισσότερους κόμβους και, στη συνέχεια, περιηγείστε σε αυτή τη δομή "γραφήματος" για να αποκτήσετε συνδέσεις σε όλο και περισσότερους κόμβους, οι οποίοι μπορούν να παρέχουνσυνδεσιμότητα με άλλους κόμβους και δεδομένα ωφέλιμου φορτίου( κομμάτια της λήψης).

Πιστεύω ότι η πραγματική ερώτησή σας με έντονους χαρακτήρες - αυτή του πώς να συμμετάσχετε σε ένα δίκτυο Kademlia DHT χωρίς να γνωρίζετε οποιαδήποτε άλλα μέλη - βασίζεται σε μια ψευδή παραδοχή.

Η απλή απάντηση στην ερώτησή σας με έντονους χαρακτήρες είναι, δεν το .Αν δεν γνωρίζετε ΟΠΟΙΑΔΗΠΟΤΕ πληροφορίες σχετικά με ακόμη και έναν κεντρικό υπολογιστή που μπορεί να περιέχει μεταδεδομένα DHT, έχετε κολλήσει - δεν μπορείτε να ξεκινήσετε.Θέλω να πω, βέβαια, ότι θα μπορούσατε να κάνετε βίαιη προσπάθεια να ανακαλύψετε μια IP στο δημόσιο διαδίκτυο με μια ανοιχτή θύρα που συμβαίνει να μεταδίδει πληροφορίες DHT.Πιθανότατα, ο πελάτης BT σας κωδικοποιείται σκληρά σε κάποια συγκεκριμένη στατική διεύθυνση IP ή DNS η οποία επιλύεται σε έναν σταθερό κόμβο DHT, ο οποίος παρέχει μόνο τα μεταδεδομένα DHT.

Βασικά, το DHT είναι μόνο αποκεντρωμένο με τον μηχανισμό σύνδεσης και επειδή ο μηχανισμός σύνδεσης είναι αρκετά εύθραυστος( δεν υπάρχει κανένας τρόπος να "μεταδοθεί" σε ολόκληρο το Διαδίκτυο!) Έτσι πρέπει να unicast σε έναν ξεχωριστό προκαθορισμένο κεντρικό υπολογιστήπάρτε τα δεδομένα DHT), το Kademlia DHT δεν είναι πραγματικά αποκεντρωμένο .Όχι με την αυστηρότερη έννοια της λέξης.

Φανταστείτε αυτό το σενάριο: Κάποιος που θέλει να σταματήσει το P2P σβήνει και προετοιμάζει μια επίθεση στο όλοι οι χρησιμοποιούν συνήθως σταθερούς κόμβους DHT που χρησιμοποιούνται για bootstrapping.Μόλις οργάνωσαν την επίθεσή τους, το άνοιξαν στο όλους τους κόμβους ταυτόχρονα. Wham ;κάθε ένας κόμβος DHT bootstrapping είναι κάτω, όλα σε μια πτώση.Και τώρα τι?Είστε κολλημένοι με τη σύνδεση με τους συγκεντρωμένους ιχνηλάτες για να κατεβάσετε τις παραδοσιακές λίστες συνομηλίκων από αυτές.Λοιπόν, αν επιτεθούν και στους ιχνηλάτες, τότε είστε πραγματικά, πραγματικά επάνω έναν κολπίσκο.Με άλλα λόγια, το Kademlia και ολόκληρο το δίκτυο BT περιορίζεται από τους περιορισμούς του ίδιου του Διαδικτύου, δεδομένου ότι υπάρχει ένας πεπερασμένος( και σχετικά μικρός) αριθμός υπολογιστών που θα πρέπει να επιτεθείτε με επιτυχία ή να εκτελέσετε εκτός σύνδεσης για να αποτρέψετε> 90% των χρηστών να συνδεθούν στο δίκτυο.

Μόλις οι "ψευδοκεντρωμένοι" κόμβοι εκτόξευσης ξεπεραστούν, οι εσωτερικοί κόμβοι του DHT, που δεν ξεκινούν από το bootstrapping επειδή ο δεν γνωρίζει κανείς έξω από το DHT για τους εσωτερικούς κόμβους , είναι άχρηστοι.δεν μπορούν να φέρουν νέους κόμβους στο DHT.Έτσι, καθώς κάθε κόμβος εσωτερικού χώρου αποσυνδέεται από το DHT με την πάροδο του χρόνου, είτε λόγω του τερματισμού των υπολογιστών, της επανεκκίνησης για ενημερώσεις κ.λπ., το δίκτυο θα κατέρρευσε.

Φυσικά, για να το ξεπεράσεις, κάποιος θα μπορούσε να αναπτύξει ένα patched BitTorrent client με μια νέα λίστα προκαθορισμένων σταθερών κόμβων DHT ή διευθύνσεων DNS και να διαφημίσει δυνατά στην κοινότητα P2P να χρησιμοποιήσει αυτή τη νέα λίστα.Αλλά αυτό θα γίνει μια κατάσταση "whack-a-mole", όπου ο επιτιθέμενος( ο κόμβος-eater) θα κατεβάσει σταδιακά αυτές τις λίστες οι ίδιοι, και θα στοχεύσει στους γενναίους νέους κόμβους bootstrapping, και στη συνέχεια θα τους βγάλει και εκτός σύνδεσης.

Όχι μόνο μάθαμε την απάντηση στην αρχική ερώτηση, αλλά μάθαμε αρκετά σχετικά με τη φύση του συστήματος BitTorrent και τις ευπάθειές του.

Έχετε κάτι να προσθέσετε στην εξήγηση;Απενεργοποιήστε τα σχόλια.Θέλετε να διαβάσετε περισσότερες απαντήσεις από άλλους χρήστες τεχνολογίας Stack Exchange;Δείτε το πλήρες νήμα συζήτησης εδώ.