racavedigger.com
Daily insights on Bitcoin and crypto markets
  • Facebook
  • Pinterest
  • Home
  • News

Χρησιμοποιεί το BitTorrent DHT?

Νίσα

Χρησιμοποιεί το BitTorrent DHT?

Περίληψη

Το BitTorrent είναι ένα πρωτόκολλο peer-to-peer που έχει σχεδιαστεί για μεταφορά αρχείων. Επιτρέπει στους χρήστες να συνδεθούν απευθείας μεταξύ τους για να στέλνουν και να λαμβάνουν τμήματα αρχείων. Το πρωτόκολλο χρησιμοποιεί έναν κεντρικό διακομιστή που ονομάζεται Tracker για να συντονίζει τις ενέργειες όλων των εμπλεκόμενων συνομηλίκων. Ωστόσο, το BitTorrent περιλαμβάνει επίσης μια επέκταση που ονομάζεται Πρωτόκολλο Distributed Sloppy Hash Table (DHT), το οποίο είναι πρωτόκολλο ιχνηλάτη από ομοτίμους που βασίζεται στο UDP.

Βασικά σημεία

  • Το BitTorrent είναι ένα πρωτόκολλο για τη μεταφορά αρχείων.
  • Οι χρήστες συνδέονται απευθείας μεταξύ τους για να στείλουν και να λαμβάνουν μερίδες αρχείων.
  • Το πρωτόκολλο χρησιμοποιεί έναν κεντρικό διακομιστή που ονομάζεται Tracker.
  • Ο ιχνηλάτης συντονίζει τις ενέργειες των εμπλεκόμενων συνομηλίκων.
  • Το πρωτόκολλο DHT είναι μια επέκταση στο BitTorrent.
  • Το DHT είναι ένα πρωτόκολλο Tracker με βάση το UDP.
  • Το BitTorrent χρησιμοποιεί το TCP ως πρωτόκολλο μεταφοράς του.
  • Η γνωστή θύρα TCP για την κυκλοφορία BitTorrent είναι 6881-6889.
  • Η DHT χρησιμοποιεί διάφορες θύρες UDP που διαπραγματεύονται οι συνομηλίκοι.
  • Το BitTorrent έχει υιοθετηθεί ευρέως από τη δημιουργία του το 2002.

Ερωτήσεις και απαντήσεις


Ε: Πώς λειτουργεί το bittorrent?

A: Το BitTorrent είναι ένα πρωτόκολλο peer-to-peer που επιτρέπει στους χρήστες να μεταφέρουν αρχεία συνδέοντας απευθείας μεταξύ τους. Αντί να βασίζεται σε έναν κεντρικό διακομιστή, το BitTorrent χρησιμοποιεί έναν ιχνηλάτη για να συντονίσει τις ενέργειες των συνομηλίκων που εμπλέκονται στη μεταφορά αρχείων. Αυτή η αποκεντρωμένη προσέγγιση επιτρέπει την αποτελεσματική κατανομή των αρχείων, καθώς οι χρήστες μπορούν να μοιράζονται τμήματα του αρχείου που έχουν ήδη κατεβάσει με άλλους.


Ε: Ποιος είναι ο σκοπός του πρωτοκόλλου DHT στο BitTorrent?

Α: Το πρωτόκολλο DHT ή το κατανεμημένο πρωτόκολλο επιτραπέζιο τραπέζι είναι μια επέκταση στο BitTorrent. Επιτρέπει την αποθήκευση torrents αποθηκεύοντας στοιχεία επικοινωνίας σε έναν κατανεμημένο πίνακα κατακερματισμού. Κάθε ομότιμος στο δίκτυο γίνεται ιχνηλάτη και το πρωτόκολλο εφαρμόζεται μέσω του UDP. Το DHT επιτρέπει στους συνομηλίκους να βρουν και να συνδεθούν μεταξύ τους χωρίς να βασίζονται σε κεντρικό διακομιστή ιχνηλάτη.


Ε: Ποιο πρωτόκολλο μεταφοράς χρησιμοποιεί κυρίως το BitTorrent?

A: Το BitTorrent χρησιμοποιεί κυρίως TCP (πρωτόκολλο ελέγχου μετάδοσης) ως πρωτόκολλο μεταφοράς του. Το TCP εξασφαλίζει αξιόπιστη και διατεταγμένη παράδοση πακέτων δεδομένων μεταξύ των συνομηλίκων. Το γνωστό εύρος θύρας TCP για το BitTorrent Traffic είναι 6881-6889.


Ε: Το πρωτόκολλο DHT χρησιμοποιεί το UDP ή το TCP?

Α: Το πρωτόκολλο DHT στο BitTorrent χρησιμοποιεί το πρωτόκολλο UDP (πρωτόκολλο χρήστη Datagram) ως πρωτόκολλο μεταφοράς του. Το UDP είναι ένα πρωτόκολλο χωρίς σύνδεση που παρέχει ταχύτερη και λιγότερο αξιόπιστη παράδοση πακέτων σε σύγκριση με το TCP. Οι συμμαθητές που εμπλέκονται στο πρωτόκολλο DHT διαπραγματεύονται τις θύρες UDP για τη δημιουργία συνδέσεων.


Ε: Πότε δημιουργήθηκε το Bittorrent?

A: Το BitTorrent σχεδιάστηκε από τον Bram Cohen τον Απρίλιο του 2001 και υλοποιήθηκε το καλοκαίρι του 2002. Ήταν το πρώτο πρόγραμμα για τη χρήση του πρωτοκόλλου BitTorrent και από τότε έχουν αναπτυχθεί πολλές εφαρμογές με βάση το πρωτόκολλο.


Ε: Ποιος είναι ο ρόλος του ιχνηλάτη στο BitTorrent?

Α: Ο ιχνηλάτης στο BitTorrent είναι ένας κεντρικός διακομιστής που διαχειρίζεται τις συνδέσεις μεταξύ των συνομηλίκων. Παρακολουθεί ποιοι συμμαθητές κατέχουν τα διαφορετικά τμήματα ενός αρχείου και διευκολύνουν την ανταλλαγή δεδομένων μεταξύ τους. Ωστόσο, ο ιχνηλάτης δεν έχει γνώση των πραγματικών περιεχομένων αρχείων που διανέμονται.


Ε: Υπάρχουν συγκεκριμένοι αριθμοί θύρας που σχετίζονται με την κυκλοφορία BitTorrent?

Α: Ναι, η γνωστή περιοχή θύρας TCP για την κυκλοφορία BitTorrent είναι 6881-6889. Αυτές οι θύρες χρησιμοποιούνται για την καθιέρωση συνδέσεων TCP μεταξύ των συνομηλίκων. Επιπλέον, οι θύρες UDP που χρησιμοποιούνται για το πρωτόκολλο DHT διαπραγματεύονται από τους συνομηλίκους που εμπλέκονται στην επικοινωνία.


Ε: Ποια είναι η διαφορά μεταξύ ενός ομότιμου και ενός κόμβου στο BitTorrent?

Α: Στο πλαίσιο του BitTorrent, ένας ομότιμος αναφέρεται σε έναν πελάτη ή έναν διακομιστή που ακούει σε μια θύρα TCP και εφαρμόζει το πρωτόκολλο BitTorrent για μεταφορά αρχείων. Από την άλλη πλευρά, ένας κόμβος αναφέρεται σε έναν πελάτη ή έναν διακομιστή που ακούει σε μια θύρα UDP και εφαρμόζει το πρωτόκολλο κατανεμημένου πίνακα κατακερματισμού (DHT). Οι κόμβοι χρησιμοποιούνται για την αποθήκευση και την ανάκτηση πληροφοριών επικοινωνίας με ομοτίμους για trackerless torrents.


Ε: Είναι το Wireshark ικανό να αναλύσει την κυκλοφορία Bittorrent?

Α: Ναι, το Wireshark περιλαμβάνει έναν πλήρως λειτουργικό διαλύτη BitTorrent που μπορεί να αναλύσει και να αποκωδικοποιήσει την κυκλοφορία BitTorrent. Οι επεκτάσεις DHT και UTP υποστηρίζονται επίσης από το Wireshark. Το BitTorrent Dissector είναι διαθέσιμο από τη συγκεκριμένη έκδοση Wireshark (λεπτομέρειες που δεν παρέχονται).


Ε: Υπάρχουν ρυθμίσεις προτιμήσεων που σχετίζονται με το BitTorrent στο Wireshark?

Α: Ναι, υπάρχουν ρυθμίσεις προτιμήσεων στο Wireshark που σχετίζονται με το BitTorrent. Ορισμένες από αυτές τις ρυθμίσεις περιλαμβάνουν τη δυνατότητα επανασυναρμολόγησης μηνυμάτων BitTorrent που καλύπτουν πολλαπλά τμήματα TCP και την επιλογή αποκωδικοποίησης του peer_id των μηνυμάτων χειραψίας. Αυτές οι ρυθμίσεις προτιμήσεων παρέχουν λεπτομερέστερη ανάλυση της κυκλοφορίας BitTorrent που συλλαμβάνονται στο Wireshark.


Ε: Μπορείτε να δώσετε ένα παράδειγμα αρχείου καταγραφής της κυκλοφορίας BitTorrent?

Α: Ναι, υπάρχουν παραδείγματα αρχεία καταγραφής διαθέσιμα για κυκλοφορία BitTorrent. Ένα παράδειγμα είναι “Samplecaptures/BitTorrent.Μεταφορά1.καπάκι, “που καταγράφηκε χρησιμοποιώντας τη Microsoft Network Monitor. Περιέχει μερικά πακέτα BitTorrent που λαμβάνονται κατά τη λήψη στο Bittorrent. Ένα άλλο παράδειγμα είναι “Σημειώσεις/bittorrent.PCAP, “καταγράφηκε χρησιμοποιώντας το libpcap. Καταγράφει την επικοινωνία μεταξύ δύο πελατών torrent χωρίς DHT ή ανταλλαγή ομοτίμων.


Ε: Πώς μπορώ να εμφανίσω μόνο την κυκλοφορία του BitTorrent στο Wireshark?

Α: Για να εμφανίσετε μόνο την κυκλοφορία που βασίζεται στο BitTorrent στο Wireshark, μπορείτε να χρησιμοποιήσετε το φίλτρο οθόνης “BitTorrent.”Η εφαρμογή αυτού του φίλτρου θα εμφανίζει μόνο τα πακέτα που σχετίζονται με την κυκλοφορία BitTorrent. Λάβετε υπόψη ότι αυτό το φίλτρο μπορεί να είναι διαθέσιμο στο Wireshark μετά από μια συγκεκριμένη έκδοση (λεπτομέρειες που δεν παρέχονται).


Ε: Είναι δυνατόν να συλλάβετε μόνο την κυκλοφορία παρακολούθησης BitTorrent χρησιμοποιώντας ένα συγκεκριμένο φίλτρο?

Α: Κατά τη λήψη της κυκλοφορίας δικτύου, δεν είναι δυνατόν να φιλτράρετε τα πρωτόκολλα BitTorrent BitTorrent. Ωστόσο, εάν γνωρίζετε τη θύρα TCP που χρησιμοποιείται από το BitTorrent Tracker (όπως το 6881), μπορείτε να ορίσετε ένα φίλτρο σύλληψης για να καταγράψετε μόνο την κυκλοφορία πάνω από αυτή τη θύρα. Για παράδειγμα, το φίλτρο σύλληψης “TCP Port 6881” θα καταγράψει μόνο την κυκλοφορία Tracker Bittorrent στη θύρα 6881. Επιπλέον, μπορείτε να καταγράψετε την κυκλοφορία του Tracker BitTorrent σε μια σειρά προεπιλεγμένων θυρών (e.σολ., 6881-6889) Χρήση του φίλτρου “TCP Portange 6881-6889.«


Ε: Υπάρχουν εξωτερικοί σύνδεσμοι που σχετίζονται με το BitTorrent?

Α: Ναι, εδώ είναι μερικοί εξωτερικοί σύνδεσμοι που σχετίζονται με το BitTorrent:

  • http: // www.δίδυμος.com/ – Ο επίσημος ιστότοπος BitTorrent.
  • Σελίδα Wikipedia BitTorrent – Άρθρο Wikipedia για το BitTorrent.
  • Πώς λειτουργεί το BitTorrent – Πληροφορίες σχετικά με το P2P γενικά, το BitTorrent και τις ρυθμίσεις τείχους προστασίας.
  • Πρωτόκολλο DHT (BEP 5) – Η επέκταση BitTorrent που βασίζεται σε UDP για κατανεμημένους ιχνηλάτες.
  • Αντίγραφο αρχείου ιστού (2007-12-21) του πρωτοκόλλου DHT Draft DHT – Αρχειοθετημένο σχέδιο του πρωτοκόλλου DHT.
  • Περιγραφή υπογραφής πρωτοκόλλου Hippie – Περιγραφή των υπογραφών πρωτοκόλλου TCP και UDP που μπορούν να χρησιμοποιηθούν για τον προσδιορισμό του πρωτοκόλλου BitTorrent.


Ε: Πώς λειτουργεί το πρωτόκολλο DHT στο BitTorrent?

Α: Το πρωτόκολλο DHT στο BitTorrent χρησιμοποιεί έναν κατανεμημένο τραπέζι κατακερματισμού για την αποθήκευση και την ανάκτηση πληροφοριών επικοινωνίας από ομοτίμους για torrents χωρίς tracker. Κάθε κόμβος στο DHT έχει ένα παγκοσμίως μοναδικό αναγνωριστικό γνωστό ως το αναγνωριστικό “κόμβου.”Οι κόμβοι διατηρούν έναν πίνακα δρομολόγησης που περιέχει στοιχεία επικοινωνίας για άλλους κόμβους. Ο πίνακας δρομολόγησης γίνεται πιο λεπτομερής καθώς οι κόμβοι πλησιάζουν στο δικό τους αναγνωριστικό κόμβου. Αυτή η δομή επιτρέπει στους κόμβους να ανακαλύψουν και να συνδεθούν αποτελεσματικά με τους συνομηλίκους.

Επιπλέον πληροφορίες

Δίδυμος.org είναι ο επίσημος ιστότοπος για το BitTorrent. Παρέχει πόρους, τεκμηρίωση και ενημερώσεις σχετικά με το πρωτόκολλο BitTorrent και τις υλοποιήσεις του. Το BitTorrent χρησιμοποιεί το πρωτόκολλο DHT για να επιτρέψει στους torrents χωρίς tracker. Το πρωτόκολλο DHT εφαρμόζεται μέσω του UDP και βασίζεται σε κόμβους για την αποθήκευση και την ανάκτηση πληροφοριών επικοινωνίας από ομοτίμους.

Σημείωση: Αυτό το άρθρο παρέχει μια συνοπτική επισκόπηση του BitTorrent, της επέκτασής του DHT και των σχετικών πληροφοριών. Για περισσότερες λεπτομέρειες και τεχνικές προδιαγραφές, συνιστάται να επισκεφθείτε τον επίσημο ιστότοπο BitTorrent και τους εξωτερικούς συνδέσμους που παρέχονται.

Χρησιμοποιεί το BitTorrent DHT

Μετά απο εσένα’Βρήκα όλους τους συνομηλίκους σας, ξεκινά η λήψη σας!

Δίδυμος

Το BitTorrent είναι ένα πρωτόκολλο σχεδιασμένο για μεταφορά αρχείων. Είναι peer-to-peer στη φύση, καθώς οι χρήστες συνδέονται μεταξύ τους απευθείας για να στείλουν και να λαμβάνουν τμήματα του αρχείου. Ωστόσο, υπάρχει ένας κεντρικός διακομιστής (που ονομάζεται Tracker) ο οποίος συντονίζει τη δράση όλων αυτών των συνομηλίκων. Ο ιχνηλάτης διαχειρίζεται μόνο συνδέσεις, δεν έχει καμία γνώση του περιεχομένου των διανομών αρχείων και επομένως ένας μεγάλος αριθμός χρηστών μπορεί να υποστηριχθεί με σχετικά περιορισμένο εύρος ζώνης Tracker.

Μια πρόσφατη επέκταση στο BitTorrent είναι το πρωτόκολλο DHT (“Distributed Sloppy Hash” ή απλά ονομάζεται πρωτόκολλο Tracker UDP). Ένα πρωτόκολλο ομότιμων με βάση το UDP στο Peer Tracker Protocol. Και το uTorrent εισάγει ένα άλλο πρωτόκολλο μικρο -μεταφοράς με βάση το UDP, που ονομάζεται UTP.

Ιστορία

Τον Απρίλιο του 2001 ο Bram Cohen σχεδίασε το πρωτόκολλο Bittorrent, το οποίο υλοποίησε το καλοκαίρι του 2002. Το πρώτο πρόγραμμα για τη χρήση του πρωτοκόλλου ήταν ο αρχικός πελάτης BitTorrent. Σήμερα πολλές εφαρμογές είναι διαθέσιμες και το πρωτόκολλο χρησιμοποιείται ευρέως.

Εξαρτήσεις πρωτοκόλλου

  • TCP: Συνήθως, το BitTorrent χρησιμοποιεί το TCP ως πρωτόκολλο μεταφοράς του. Η πολύ γνωστή θύρα TCP για το BitTorrent Traffic είναι 6881-6889 (και 6969 για τη θύρα Tracker). Η επέκταση DHT (Peer2Peer Tracker) χρησιμοποιεί διάφορες θύρες UDP που διαπραγματεύονται από τους συνομηλίκους.

Παράδειγμα κυκλοφορίας

XXX – Προσθέστε την κυκλοφορία παραδείγματος εδώ (ως απλό κείμενο ή οθόνη οθόνης Wireshark).

Ζαχαρωτό

Ο διαλύτης Bittorrent είναι (πλήρως λειτουργικός, μερικώς λειτουργικός, όχι υπάρχον, … ανεξάρτητα από την τρέχουσα κατάσταση). Η επέκταση DHT έχει υποστηριχθεί από το R39653. Η επέκταση UTP έχει υποστηριχθεί από το R36716.

Ρυθμίσεις προτιμήσεων

  • Επανασυναρμολογήστε τα μηνύματα Bittorrent που εκτείνονται σε πολλαπλά τμήματα TCP
  • Αποκωδικοποιήστε το peer_id των μηνυμάτων χειραψίας

Παράδειγμα αρχείων καταγραφής

Σενδιακές/Bittorrent.Μεταφορά1.Cap (Microsoft Network Monitor) Εδώ είναι μια σύλληψη με μερικά πακέτα BitTorrent. Περιέχει μερικά μικρά πακέτα που πήρα κατά τη λήψη κάτι στο BitTorrent.

Σενδιακές/Bittorrent.PCAP (LIBPCAP) Αρχείο καταγραφής δύο πελατών Torrent Communicationg χωρίς DHT ή Peer Exch.

Προβολή φίλτρου

Μια πλήρης λίστα πεδίων φίλτρου οθόνης BitTorrent μπορεί να βρεθεί στην αναφορά φίλτρου οθόνης

Εμφάνιση μόνο της κυκλοφορίας που βασίζεται στο BitTorrent:

 δίδυμος

ΣΗΜΕΙΩΣΗ: Εφαρμόστηκε στο Wireshark Post 0.10.12!

Φίλτρο καταγραφής

Δεν μπορείτε να φιλτράρετε απευθείας τα πρωτόκολλα BitTorrent κατά τη σύλληψη. Ωστόσο, αν γνωρίζετε τη χρησιμοποιούμενη θύρα TCP (βλ. Παραπάνω), μπορείτε να φιλτράρετε σε αυτό.

Συλλέξτε μόνο την κυκλοφορία παρακολούθησης BitTorrent σε μία από τις προεπιλεγμένες θύρες (Ε (Ε.σολ. 6881):

 θύρα TCP 6881

Καταγράψτε την κυκλοφορία παρακολούθησης bittorrent πάνω από το φάσμα των προεπιλεγμένων θυρών (e.σολ. 6881-6889):

 TCP Portange 6881-6889

Όταν χρησιμοποιείτε το libpcap 0.9.1 ή αργότερα ή WinPCAP 3.1 ή αργότερα? Αυτή η έκφραση δεν θα λειτουργήσει με παλαιότερες εκδόσεις του LiBPCAP ή του WinPCAP, έτσι, στα Windows, αναβάθμιση στο WinPCAP 3.1 ή αργότερα και, σε un*x, αναβάθμιση στο libpcap 0.9.x Εάν είναι δυνατόν και, αν δεν είναι δυνατόν και έχετε μια έκδοση του libpcap πριν από το 0.8.1, χρησιμοποιήστε

 (TCP [0: 2]> = 6881 και TCP [0: 2] = 6881 και TCP [2: 2] 

(Ένα σφάλμα στο βελτιστοποιητή LiBPCAP στο libpcap 0.8.x σημαίνει ότι αυτό δεν θα λειτουργήσει με το libpcap 0.8.x, αν και ίσως μπορείτε να χρησιμοποιήσετε το TCPDUMP με τη σημαία "-O").

εξωτερικοί σύνδεσμοι

  • http: // www.δίδυμος.com/ η επίσημη σελίδα Bittorrent
  • Σελίδα Wikipedia BitTorrent
  • Πώς λειτουργεί το BitTorrent για το P2P γενικά, τις ρυθμίσεις BitTorrent και Firewall
  • Το πρωτόκολλο DHT (BEP 5), η επέκταση BitTorrent που βασίζεται στο UDP για κατανεμημένους ιχνηλάτες (ο αριθμός θύρας UDP διαπραγματεύεται). Επίσης: Σύνδεσμος με πρωτόκολλο DHT (Dead Link), αντίγραφο αρχείου ιστού (2007-12-21) του πρωτοκόλλου DHT Draft DHT.
  • Hippie Protocol Signature Περιγραφή Οι υπογραφές πρωτοκόλλου TCP και UDP που θα μπορούσαν να χρησιμοποιηθούν για την αναγνώριση του συνδέσμου αρχείου BitTorrent Protocol Web Archive Link
  • Περισσότερα για το bittorrent

Δίδυμος .org

Το BitTorrent χρησιμοποιεί ένα "κατανεμημένο τραπέζι κατακερματισμού" (DHT) για την αποθήκευση πληροφοριών επικοινωνίας από ομοτίμους για "Trackerless" torrents. Στην πραγματικότητα, κάθε ομότιμος γίνεται ιχνηλάτης. Το πρωτόκολλο βασίζεται στο Kademila [1] και εφαρμόζεται μέσω του UDP.

Σημειώστε την ορολογία που χρησιμοποιείται σε αυτό το έγγραφο για να αποφύγετε τη σύγχυση. Ένας "ομότιμος" είναι ένας πελάτης/διακομιστής που ακούει μια θύρα TCP που υλοποιεί το πρωτόκολλο BitTorrent. Ένας "κόμβος" είναι ένας πελάτης/διακομιστής που ακούει μια θύρα UDP που εφαρμόζει το διανεμημένο πρωτόκολλο πίνακα κατακερματισμού. Το DHT αποτελείται από κόμβους και αποθηκεύει τη θέση των συνομηλίκων. Οι πελάτες του BitTorrent περιλαμβάνουν έναν κόμβο DHT, ο οποίος χρησιμοποιείται για να επικοινωνήσει με άλλους κόμβους στο DHT για να πάρει τη θέση των συνομηλίκων για να κατεβάσετε από τη χρήση του πρωτοκόλλου BitTorrent.

ΣΦΑΙΡΙΚΗ ΕΙΚΟΝΑ

Κάθε κόμβος έχει ένα παγκόσμιο μοναδικό αναγνωριστικό γνωστό ως το αναγνωριστικό "κόμβου."Τα αναγνωριστικά κόμβων επιλέγονται τυχαία από τον ίδιο χώρο 160 bit με το BitTorrent Infohashes [2]. Μια "μετρική απόσταση" χρησιμοποιείται για τη σύγκριση δύο αναγνωριστικών κόμβων ή ενός αναγνωριστικού κόμβου και ενός infohash για "εγγύτητα."Οι κόμβοι πρέπει να διατηρούν έναν πίνακα δρομολόγησης που περιέχει τα στοιχεία επικοινωνίας για έναν μικρό αριθμό άλλων κόμβων. Ο πίνακας δρομολόγησης γίνεται πιο λεπτομερής, καθώς τα αναγνωριστικά πλησιάζουν στο αναγνωριστικό του κόμβου. Οι κόμβοι γνωρίζουν για πολλούς άλλους κόμβους στο DHT που έχουν αναγνωριστικά που είναι "κοντά" στη δική τους, αλλά έχουν μόνο μια χούφτα επαφές με IDs που είναι πολύ μακριά από τη δική τους.

Στην Kademlia, η μετρική απόσταση είναι XOR και το αποτέλεσμα ερμηνεύεται ως μη υπογεγραμμένος ακέραιος. απόσταση (a, b) = | a xor b | Οι μικρότερες τιμές είναι πιο κοντά.

Όταν ένας κόμβος θέλει να βρει συνομηλίκους για ένα torrent, χρησιμοποιεί τη μέτρηση απόστασης για να συγκρίνει το infohash του torrent με τα αναγνωριστικά των κόμβων στο δικό του τραπέζι δρομολόγησης. Στη συνέχεια, έρχεται σε επαφή με τους κόμβους που γνωρίζει με τα αναγνωριστικά πλησιέστερα στο Infohash και τους ζητά τα στοιχεία επικοινωνίας των συνομηλίκων που κατεβάζουν επί του παρόντος το torrent. Εάν ένας κόμβος που έρχεται σε επαφή γνωρίζει τους συνομηλίκους για το torrent, τα στοιχεία επικοινωνίας με ομοτίμους επιστρέφονται με την απάντηση. Διαφορετικά, ο κόμβος που έρχεται σε επαφή πρέπει να ανταποκριθεί με τα στοιχεία επικοινωνίας των κόμβων στον πίνακα δρομολόγησης που βρίσκονται πιο κοντά στο Infohash του Torrent. Ο αρχικός κόμβος ερωτάται επαναληπτικά κόμβους που είναι πιο κοντά στο Target Infohash μέχρι να μην βρει κανέναν πιο κοντά κόμβους. Αφού εξαντληθεί η αναζήτηση, ο πελάτης εισάγει στη συνέχεια τα στοιχεία επικοινωνίας από ομοτίμους για τον εαυτό του στους κόμβους που ανταποκρίνονται με τα IDs πλησιέστερα στο Infohash του Torrent.

Η τιμή επιστροφής για ένα ερώτημα για τους συνομηλίκους περιλαμβάνει μια αδιαφανή τιμή γνωστή ως "Token."Για να ανακοινώσει ένας κόμβος ότι ο ελεγκτής του, κατεβάζει ένα torrent, πρέπει να παρουσιάσει το διακριτικό που λαμβάνεται από τον ίδιο queried Node σε ένα πρόσφατο ερώτημα για τους συνομηλίκους. Όταν ένας κόμβος επιχειρεί να "ανακοινώσει" ένα torrent, ο queried Node ελέγχει το διακριτικό ενάντια στη διεύθυνση IP του κόμβου Querying. Αυτό είναι για να εμποδίσει τους κακόβουλους οικοδεσπότες να εγγραφούν άλλοι οικοδεσπότες για torrents. Δεδομένου ότι το διακριτικό απλώς επιστρέφεται από τον κόμβο ερωτήματος στον ίδιο κόμβο που έλαβε το διακριτικό από, η εφαρμογή δεν έχει οριστεί. Τα μάρκες πρέπει να γίνονται αποδεκτά για εύλογο χρονικό διάστημα μετά την κατανομή τους. Η υλοποίηση του BitTorrent χρησιμοποιεί το hash sha1 της διεύθυνσης IP που συνδέεται σε ένα μυστικό που αλλάζει κάθε πέντε λεπτά και τα μάρκες μέχρι δέκα λεπτά γίνονται αποδεκτά.

Τραπέζι δρομολόγησης

Κάθε κόμβος διατηρεί έναν πίνακα δρομολόγησης γνωστών καλών κόμβων. Οι κόμβοι στον πίνακα δρομολόγησης χρησιμοποιούνται ως σημεία εκκίνησης για ερωτήματα στο DHT. Οι κόμβοι από τον πίνακα δρομολόγησης επιστρέφονται σε απάντηση σε ερωτήματα από άλλους κόμβους.

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

Ο πίνακας δρομολόγησης καλύπτει ολόκληρο το χώρο ταυτότητας κόμβου από 0 έως 2 160 . Ο πίνακας δρομολόγησης υποδιαιρείται σε "κουβάδες" που καλύπτουν κάθε ένα μέρος του χώρου. Ένας άδειος πίνακας έχει έναν κάδο με ένα εύρος διαστήματος ταυτότητας min = 0, max = 2 160 . Όταν ο κόμβος με το αναγνωριστικό "n" εισάγεται στο τραπέζι, τοποθετείται μέσα στον κάδο που έχει Min <= N < Μέγιστη. Ένας άδειος πίνακας έχει μόνο έναν κάδο, έτσι ώστε οποιοσδήποτε κόμβος πρέπει να ταιριάζει μέσα του. Κάθε κουβά μπορεί να κρατήσει μόνο τους κόμβους K, σήμερα οκτώ, πριν γίνει "γεμάτος."Όταν ένας κάδος είναι γεμάτος από γνωστούς καλούς κόμβους, δεν μπορούν να προστεθούν περισσότερο. Σε αυτή την περίπτωση, ο κάδος αντικαθίσταται από δύο νέους κάδους με το ήμισυ της περιοχής του παλιού κάδου και οι κόμβοι από τον παλιό κάδο κατανέμονται μεταξύ των δύο νέων. Για ένα νέο τραπέζι με μόνο ένα κουβά, ο πλήρης κάδος χωρίζεται πάντα σε δύο νέους κάδους που καλύπτουν τις σειρές 0..2 159 και 2 159 ..2 160 .

Όταν ο κάδος είναι γεμάτος καλούς κόμβους, ο νέος κόμβος απορρίπτεται απλώς. Εάν οι κόμβοι στον κάδο είναι γνωστό ότι έχουν γίνει κακοί, τότε κάποιος αντικαθίσταται από τον νέο κόμβο. Εάν υπάρχουν αμφισβητήσιμοι κόμβοι στον κάδο δεν έχουν δει τα τελευταία 15 λεπτά, ο λιγότερο πρόσφατα παρατηρημένος κόμβος είναι pinged. Εάν ο κόμβος pinged απαντήσει τότε ο επόμενος λιγότερο πρόσφατα παρατηρημένος αμφισβητήσιμος κόμβος είναι pinged μέχρι να μην ανταποκριθεί ή όλοι οι κόμβοι στον κάδο είναι γνωστό ότι είναι καλοί. Εάν ένας κόμβος στον κάδο αποτυγχάνει να ανταποκριθεί σε ένα ping, προτείνεται να δοκιμάσετε για άλλη μια φορά πριν απορρίψετε τον κόμβο και την αντικατάστασή του με έναν νέο καλό κόμβο. Με αυτόν τον τρόπο, ο πίνακας γεμίζει με σταθερούς μακροχρόνιους κόμβους.

Κάθε κουβά θα πρέπει να διατηρήσει μια ιδιοκτησία "τελευταίας αλλαγής" για να υποδείξει πόσο "φρέσκο" είναι τα περιεχόμενα. Όταν ένας κόμβος σε έναν κάδο είναι pinged και ανταποκρίνεται, ή ένας κόμβος προστίθεται σε έναν κάδο ή ένας κόμβος σε έναν κάδο αντικαθίσταται με έναν άλλο κόμβο, η τελευταία μεταβαλλόμενη ιδιότητα του κάδου πρέπει να ενημερωθεί. Οι κάδοι που δεν έχουν αλλάξει σε 15 λεπτά θα πρέπει να "ανανεώνονται."Αυτό γίνεται με την επιλογή ενός τυχαίου αναγνωριστικού στην περιοχή του κάδου και την εκτέλεση μιας αναζήτησης Find_nodes σε αυτό. Οι κόμβοι που είναι σε θέση να λαμβάνουν ερωτήματα από άλλους κόμβους συνήθως δεν χρειάζεται να ανανεώνουν κουβάδες συχνά. Οι κόμβοι που δεν είναι σε θέση να λαμβάνουν ερωτήματα από άλλους κόμβους συνήθως θα πρέπει να ανανεώνουν όλους τους κάδους περιοδικά για να εξασφαλίσουν ότι υπάρχουν καλοί κόμβοι στο τραπέζι τους όταν χρειάζεται το DHT.

Κατά την εισαγωγή του πρώτου κόμβου στον πίνακα δρομολόγησης και κατά την εκκίνηση στη συνέχεια, ο κόμβος θα πρέπει να προσπαθήσει να βρει τους πλησιέστερους κόμβους στο DHT στον εαυτό του. Το κάνει αυτό με την έκδοση μηνυμάτων find_node σε πιο κοντά και πιο κοντά κόμβους μέχρι να μην βρει κανένα πιο κοντά. Ο πίνακας δρομολόγησης πρέπει να αποθηκευτεί μεταξύ των επικλήσεων του λογισμικού πελάτη.

Επέκταση πρωτοκόλλου BitTorrent

Το πρωτόκολλο BitTorrent έχει επεκταθεί για την ανταλλαγή αριθμών θύρας του κόμβου UDP μεταξύ των συνομηλίκων που εισάγονται από έναν ιχνηλάτη. Με αυτόν τον τρόπο, οι πελάτες μπορούν να πάρουν τα τραπέζια δρομολόγησης τους να σπρολαίνουν αυτόματα μέσω της λήψης των κανονικών torrents. Οι πρόσφατα εγκατεστημένοι πελάτες που προσπαθούν να κατεβάσουν ένα torrent χωρίς tracker στην πρώτη δοκιμή δεν θα έχουν κόμβους στο τραπέζι δρομολόγησης τους και θα χρειαστούν τις επαφές που περιλαμβάνονται στο αρχείο torrent.

Οι συμμαθητές που υποστηρίζουν το DHT έθεσαν το τελευταίο κομμάτι των 8-byte Reserved Flags που ανταλλάσσονται στο Bittorrent Protocol Handshake. Ο ομότιμος λαμβάνει μια χειραψία που υποδεικνύει ότι ο απομακρυσμένος ομότιμος υποστηρίζει ότι το DHT πρέπει να στείλει ένα μήνυμα θύρας. Ξεκινά με byte 0x09 και έχει ένα ωφέλιμο φορτίο δύο byte που περιέχει τη θύρα UDP του κόμβου DHT σε σειρά byte δικτύου. Οι συνομηλίκοι που λαμβάνουν αυτό το μήνυμα θα πρέπει να προσπαθήσουν να ping τον κόμβο στη ληφθείσα θύρα και τη διεύθυνση IP του απομακρυσμένου ομότιμου. Εάν λαμβάνεται μια απάντηση στο ping, ο κόμβος θα πρέπει να προσπαθήσει να εισαγάγει τα νέα στοιχεία επικοινωνίας στον πίνακα δρομολόγησης σύμφωνα με τους συνήθεις κανόνες.

Επεκτάσεις αρχείων torrent

Ένα λεξικό Torrent χωρίς tracker δεν έχει κλειδί "ανακοίνωσης". Αντ 'αυτού, ένα torrent χωρίς tracker έχει ένα πλήκτρο "κόμβων". Αυτό το κλειδί θα πρέπει να ρυθμιστεί στους πλησιέστερους κόμβους K στον πίνακα δρομολόγησης του πελάτη που δημιουργεί το Torrent. Εναλλακτικά, το κλειδί θα μπορούσε να ρυθμιστεί σε έναν γνωστό καλό κόμβο, όπως κάποιος που λειτουργεί από το πρόσωπο που παράγει το torrent. Παρακαλώ μην προσθέσετε αυτόματα "δρομολογητή.δίδυμος.com "σε αρχεία torrent ή προσθέστε αυτόματα αυτόν τον κόμβο σε πίνακες δρομολόγησης πελατών.

κόμβοι = [["",], ["",], . ] κόμβους = [["127.0.0.1 ", 6881], [" σας.δρομολογητής.Κόμβος ", 4804], [" 2001: DB8: 100: 0: D5C8: DB3F: 995E: C0F7 ", 1941]]

Πρωτόκολλο KRPC

Το πρωτόκολλο KRPC είναι ένας απλός μηχανισμός RPC που αποτελείται από λεξικά με bencoded που αποστέλλονται πάνω από το UDP. Ένα ενιαίο πακέτο ερωτημάτων αποστέλλεται και ένα πακέτο αποστέλλεται σε απάντηση. Δεν υπάρχει επανάληψη. Υπάρχουν τρεις τύποι μηνυμάτων: ερώτημα, απάντηση και σφάλμα. Για το πρωτόκολλο DHT, υπάρχουν τέσσερα ερωτήματα: ping, find_node, get_peers και ontounce_peer.

Ένα μήνυμα KRPC είναι ένα ενιαίο λεξικό με τρία κλειδιά που είναι κοινά σε κάθε μήνυμα και πρόσθετα κλειδιά ανάλογα με τον τύπο του μηνύματος. Κάθε μήνυμα έχει ένα κλειδί "t" με τιμή συμβολοσειράς που αντιπροσωπεύει ένα αναγνωριστικό συναλλαγής. Αυτό το αναγνωριστικό συναλλαγής παράγεται από τον κόμβο ερωτήματος και επαναλαμβάνεται στην απόκριση, έτσι οι απαντήσεις μπορεί να συσχετίζονται με πολλαπλά ερωτήματα στον ίδιο κόμβο. Το αναγνωριστικό συναλλαγής θα πρέπει να κωδικοποιείται ως μια σύντομη σειρά δυαδικών αριθμών, συνήθως 2 χαρακτήρες είναι αρκετοί καθώς καλύπτουν 2^16 εξαιρετικά ερωτήματα. Κάθε μήνυμα έχει επίσης ένα κλειδί "y" με μία μόνο τιμή χαρακτήρα που περιγράφει τον τύπο του μηνύματος. Η τιμή του πλήκτρου "Y" είναι ένα από τα "Q" για το ερώτημα, "R" για απάντηση ή "E" για σφάλμα. Ένα κλειδί "V" πρέπει να περιλαμβάνεται σε κάθε μήνυμα με μια συμβολοσειρά έκδοσης πελάτη. Η συμβολοσειρά θα πρέπει να είναι ένα αναγνωριστικό πελάτη δύο χαρακτήρων που είναι καταχωρημένο στο BEP 20 [3] ακολουθούμενο από ένα αναγνωριστικό έκδοσης δύο χαρακτήρων. Όχι όλες οι υλοποιήσεις περιλαμβάνουν ένα κλειδί "V", ώστε οι πελάτες να μην πρέπει να αναλάβουν την παρουσία του.

Κωδικοποίηση επικοινωνίας

Τα στοιχεία επικοινωνίας για τους συνομηλίκους κωδικοποιούνται ως συμβολοσειρά 6 byte. Επίσης γνωστό ως "Compact IP-Address/Info Info", η διεύθυνση IP 4-byte βρίσκεται σε σειρά byte δικτύου με τη θύρα 2 byte σε σειρά byte που συνδέεται στο τέλος.

Τα στοιχεία επικοινωνίας για τους κόμβους κωδικοποιούνται ως συμβολοσειρά 26 byte. Επίσης γνωστή ως "Compact Node Info" το αναγνωριστικό κόμβου 20 byte σε σειρά byte δικτύου έχει τα συμπαγή IP-address/info info που συνδέονται στο τέλος.

Ζητήματα

Τα ερωτήματα ή τα λεξικά μηνυμάτων KRPC με τιμή "Y" Q ", περιέχουν δύο επιπλέον κλειδιά. "Q" και "Α". Το κλειδί "Q" έχει μια τιμή συμβολοσειράς που περιέχει το όνομα της μεθόδου του ερωτήματος. Το κλειδί "a" έχει μια τιμή λεξικού που περιέχει ονομασμένα επιχειρήματα στο ερώτημα.

Απαντήσεις

Οι απαντήσεις ή τα λεξικά μηνυμάτων KRPC με τιμή "y" r ", περιέχουν ένα επιπλέον κλειδί" r ". Η τιμή του "R" είναι ένα λεξικό που περιέχει ονομασμένες τιμές επιστροφής. Τα μηνύματα απόκρισης αποστέλλονται με την επιτυχή ολοκλήρωση ενός ερωτήματος.

Σφάλματα

Σφάλματα ή λεξικά μηνυμάτων KRPC με τιμή "y" e ", περιέχουν ένα επιπλέον κλειδί" e ". Η τιμή του "e" είναι μια λίστα. Το πρώτο στοιχείο είναι ένας ακέραιος που αντιπροσωπεύει τον κωδικό σφάλματος. Το δεύτερο στοιχείο είναι μια συμβολοσειρά που περιέχει το μήνυμα σφάλματος. Τα σφάλματα αποστέλλονται όταν ένα ερώτημα δεν μπορεί να εκπληρωθεί. Ο παρακάτω πίνακας περιγράφει τους πιθανούς κωδικούς σφάλματος:

Κώδικας Περιγραφή
201 Γενικό σφάλμα
202 Σφάλμα Διακομιστή
203 Σφάλμα πρωτοκόλλου, όπως ένα κακοποιημένο πακέτο, άκυρα επιχειρήματα ή κακό διακριτικό
204 Άγνωστη μέθοδος

Παράδειγμα πακέτων σφάλματος:

Γενικό σφάλμα = bencoded = d1: eli201e23: ένα γενικό σφάλμα ocurrede1: t2: aa1: y1: ee

Ερωτήματα DHT

Όλα τα ερωτήματα έχουν ένα πλήκτρο "ID" και την τιμή που περιέχει το αναγνωριστικό κόμβου του κόμβου ερωτήσεων. Όλες οι απαντήσεις έχουν ένα πλήκτρο "ID" και τιμή που περιέχει το αναγνωριστικό κόμβου του κόμβου που ανταποκρίνεται.

πινγκόν

Το πιο βασικό ερώτημα είναι ένα ping. "Q" = "Ping" Ένα ερώτημα ping έχει ένα μόνο επιχείρημα, "id" Η τιμή είναι μια συμβολοσειρά 20 byte που περιέχει το αναγνωριστικό κόμβου αποστολέα σε σειρά byte δικτύου. Η κατάλληλη απάντηση σε ένα ping έχει ένα μόνο κλειδί "ID" που περιέχει το αναγνωριστικό κόμβου του κόμβου που ανταποκρίνεται.

επιχειρήματα: "> απάντηση:">

ping query => bencoded = d1: ad2: id20: abcdefghij0123456789e1: q4: ping1: t2: aa1: y1: qe

Response => bencoded = d1: rd2: id20: mnopqrstuvwxyz123456e1: t2: aa1: y1: re

ind_node

Το Find Node χρησιμοποιείται για να βρείτε τα στοιχεία επικοινωνίας για έναν κόμβο δεδομένης της ταυτότητάς του. "Q" == "find_node" Ένα ερώτημα Find_Node έχει δύο επιχειρήματα, "id" που περιέχει το αναγνωριστικό κόμβου του κόμβου ερωτήσεων και "στόχος" που περιέχει το αναγνωριστικό του κόμβου που επιδιώκεται από το queryer. Όταν ένας κόμβος λαμβάνει ένα ερώτημα find_node, θα πρέπει να ανταποκριθεί με έναν κλειδί "κόμβους" και τιμή μιας συμβολοσειράς που περιέχει τις πληροφορίες συμπαγούς κόμβου για τον κόμβο στόχου ή τους πλησιέστερους κόμβους K (8) στον δικό του πίνακα δρομολόγησης.

επιχειρήματα: "," Target ":" "> απάντηση:", "κόμβοι": "">

Find_node query => bencoded = d1: ad2: id20: abcdefghij01234567896: target20: mnopqrstuvwxyz123456e1: q9: find_node1: t2: aa1: y1: qe

Response => bencoded = d1: rd2: id20: 0123456789abcdefghij5: nodes9: def456. E1: T2: AA1: Y1: Re

get_peers

Αποκτήστε τους συνομηλίκους που σχετίζονται με ένα torrent infohash. "Q" = "get_peers" Ένα ερώτημα get_peers έχει δύο επιχειρήματα, "id" που περιέχει το αναγνωριστικό κόμβου του κόμβου ερωτήσεων και το "info_hash" που περιέχει το infohash του torrent. Εάν ο queried Node έχει συνομηλίκους για το InfoHash, επιστρέφονται σε μια βασική "τιμές" ως λίστα με χορδές. Κάθε συμβολοσειρά που περιέχει πληροφορίες "συμπαγής" μορφής για έναν μόνο ομότιμο. Εάν ο queried Node δεν έχει συνομηλίκους για το Infohash, επιστρέφεται ένας βασικός "κόμβοι" που περιέχει τους κόμβους k στους ερωτηματολογημένους κόμβους δρομολόγησης που βρίσκονται πλησιέστερα στο Infohash που παρέχεται στο ερώτημα. Και στις δύο περιπτώσεις ένα κλειδί "συμβολικού" περιλαμβάνεται επίσης στην τιμή επιστροφής. Η τιμή του διακριτικού είναι ένα απαιτούμενο επιχείρημα για ένα μελλοντικό ερώτημα. Η τιμή του διακριτικού πρέπει να είναι μια σύντομη δυαδική συμβολοσειρά.

Επιχειρήματα: "," info_hash ":" "> απάντηση:", "token": "", "αξίες": ["", "" ή: "," token ":", "κόμβοι": "

get_peers query => bencoded = d1: ad2: id20: abcdefghij01234567899: info_hash20: mnopqrstuvwxyz123456e1: q9: get_peers1: t2: aa1: y1: qe

Απόκριση με συνομηλίκους => bencoded = d1: rd2: id20: abcdefghij01234567895: token8: aoeusnth6: value6: axje.u6: idhtnmee1: t2: aa1: y1: re

Απόκριση με πλησιέστερους κόμβους => bencoded = d1: rd2: id20: abcdefghij01234567895: κόμβοι9: def456. 5: Token8: aoeusnthe1: t2: aa1: y1: re

ανακοινώνει_peer

Ανακοινώστε ότι ο ομότιμος, ο έλεγχος του κόμβου ερωτήματος, κατεβάζει ένα torrent σε μια θύρα. Το ANTINGE_PEER έχει τέσσερα επιχειρήματα: "ID" που περιέχει το αναγνωριστικό κόμβου του κόμβου ερωτήματος, "info_hash" που περιέχει το infohash του torrent, "Port" που περιέχει το λιμάνι ως ακέραιο και το "διακριτικό" που ελήφθη σε απάντηση σε ένα προηγούμενο ερώτημα get_peers. Ο queried Node πρέπει να επαληθεύσει ότι το διακριτικό είχε προηγουμένως αποσταλεί στην ίδια διεύθυνση IP με τον κόμβο ερωτήσεων. Στη συνέχεια, ο ερωτημένος κόμβος θα πρέπει να αποθηκεύει τη διεύθυνση IP του κόμβου ερωτήσεων και τον παρεχόμενο αριθμό θύρας κάτω από το InfoHash στο κατάστημα των πληροφοριών επικοινωνίας ομοτίμων.

Υπάρχει ένα προαιρετικό επιχείρημα που ονομάζεται υπονοούμε Ποια τιμή είναι είτε 0 ή 1. Εάν είναι παρόντες και μη μηδέν, το Λιμάνι Το επιχείρημα πρέπει να αγνοηθεί και η θύρα προέλευσης του πακέτου UDP θα πρέπει να χρησιμοποιείται ως θύρα του ομότιμου. Αυτό είναι χρήσιμο για τους συνομηλίκους πίσω από ένα NAT που μπορεί να μην γνωρίζουν την εξωτερική τους θύρα και υποστηρίζοντας το UTP, δέχονται εισερχόμενες συνδέσεις στην ίδια θύρα με τη θύρα DHT.

επιχειρήματα: "," Εμπλοκή_port ":," info_hash ":", "port":, "token": "" απάντηση: ">

announce_peers Query = > bencoded = d1:ad2:id20:abcdefghij012345678912:implied_porti1e9:info_hash20:mnopqrstuvwxyz1234564:porti6881e5:token8:aoeusnthe1:q13:announce_peer1:t2:aa1:y1:qe

Response => bencoded = d1: rd2: id20: mnopqrstuvwxyz123456e1: t2: aa1: y1: re

βιβλιογραφικές αναφορές

[1] Peter Maymounkov, David Mazieres, "Kademlia: Ένα σύστημα πληροφοριών από ομοτίμους που βασίζεται στη μέτρηση XOR", IPTPS 2002. http: // www.CS.ρύζι.EDU/συνέδρια/iptps02/109.PDF
[2] Χρησιμοποιήστε το sha1 και την αφθονία της εντροπίας για να εξασφαλίσετε ένα μοναδικό αναγνωριστικό.
[3] BEP_0020. Συμβάσεις από ομοτίμους. (http: // www.δίδυμος.org/beps/bep_0020.html)

Πνευματική ιδιοκτησία

Αυτό το έγγραφο έχει τοποθετηθεί στον δημόσιο τομέα.

webtorrent/bittorrent-dht

Αυτή η δέσμευση δεν ανήκει σε κανένα υποκατάστημα σε αυτό το αποθετήριο και μπορεί να ανήκει σε ένα πιρούνι έξω από το αποθετήριο.

Διακόπτες/ετικέτες

Ετικέτες υποκαταστημάτων

Δεν μπορούσα να φορτώσω κλάδους

Τίποτα για εμφάνιση

Δεν μπορούσα να φορτώσω ετικέτες

Τίποτα για εμφάνιση

Όνομα ήδη χρησιμοποιείται

Υπάρχει ήδη μια ετικέτα με το παρεχόμενο όνομα κλάδου. Πολλές εντολές GIT δέχονται τόσο ονόματα ετικετών όσο και ονόματα υποκαταστημάτων, οπότε η δημιουργία αυτού του κλάδου μπορεί να προκαλέσει απροσδόκητη συμπεριφορά. Είστε βέβαιοι ότι θέλετε να δημιουργήσετε αυτό το υποκατάστημα?

Ακύρωση Δημιουργία

  • Τοπικός
  • Κωδικοποιητικοί χώροι

Https github cli

Χρησιμοποιήστε το git ή το checkout με το SVN χρησιμοποιώντας τη διεύθυνση URL Web.

Εργαστείτε γρήγορα με το επίσημο CLI μας. Μάθετε περισσότερα για το CLI.

Απαιτείται

Συνδεθείτε για να χρησιμοποιήσετε χώρους κωδικοποίησης.

Εκκίνηση της επιφάνειας εργασίας GitHub

Εάν δεν συμβεί τίποτα, κατεβάστε το GitHub Desktop και δοκιμάστε ξανά.

Εκκίνηση της επιφάνειας εργασίας GitHub

Εάν δεν συμβεί τίποτα, κατεβάστε το GitHub Desktop και δοκιμάστε ξανά.

Εκκίνηση Xcode

Εάν δεν συμβεί τίποτα, κατεβάστε το xcode και δοκιμάστε ξανά.

Εκκίνηση του κώδικα Visual Studio

Ο κωδικός σας θα ανοίξει μόλις έτοιμο.

Υπήρχε ένα πρόβλημα προετοιμασίας του κωδικοποιητικού χώρου σας, δοκιμάστε ξανά.

Τελευταία δέσμευση

3B4ED64 8 Μαΐου 2023

… V1.0.9

Στατιστικά στοιχεία

Αρχεία

Αποτυχία φόρτωσης τελευταίων πληροφοριών δέσμευσης.

Τελευταίο μήνυμα δέσμευσης

Δεσμευμένος

Ανάγνωση.MD

Απλή, ισχυρή, υλοποίηση BitTorrent DHT

Κόμβος.Εφαρμογή JS του πρωτοκόλλου BitTorrent DHT. Το BitTorrent DHT είναι το κύριο στρώμα ανακάλυψης από ομοτίμους για το BitTorrent, το οποίο επιτρέπει το Tornentsless Torrents. Τα DHTs είναι φοβερά!

Αυτή η ενότητα χρησιμοποιείται από το WebTorrent.

  • Πλήρης εφαρμογή του πρωτοκόλλου DHT στο JavaScript
  • ακολουθεί το spec
  • Υποστηρίζει το BEP44 για την αποθήκευση αυθαίρετων δεδομένων στο DHT
  • ισχυρή και καλά δοκιμασμένη
    • Ολοκληρωμένη, πλήρως εξοπλισμένη σουίτα δοκιμής
    • Χρησιμοποιείται από το webtorrent, το peerflix και την αναπαραγωγή

    NPM Εγκατάσταση Bittorrent-DHT 

    NPM Εγκατάσταση Magnet-Uri 

    εισαγωγή DHT από 'BitTorrent-DHT' εισαγωγή μαγνήτης από «Magnet-Uri» κονσερβός URI = 'μαγνήτης:?XT = URN: BTIH: E3811B9539CACFF680E418124272177C47477157 ' κονσερβός ελκυσμένος = μαγνήτης(URI· κονσόλα.κούτσουρο(ελκυσμένος.infohash· // 'E3811B9539CACFF680E418124272177C47477157' κονσερβός DHT = νέος DHT(· DHT.ακούω(20000, λειτουργία (·  κονσόλα.κούτσουρο(«τώρα ακούγοντας»· >· DHT.επί('συνομήλικος', λειτουργία (συνομήλικος, infohash, από·  κονσόλα.κούτσουρο(«Βρέθηκε πιθανός ομότιμος» + συνομήλικος.πλήθος + ':' + συνομήλικος.Λιμάνι + «Μέσα» + από.διεύθυνση + ':' + από.Λιμάνι· >· // βρείτε συνομηλίκους για το δεδομένο hash info torrent DHT.ψάχνω(ελκυσμένος.infohash·

    DHT = νέο DHT ([opts])

    Δημιουργήστε μια νέα παρουσία DHT.

    Εάν έχει καθοριστεί το OPTS, τότε θα αντικατασταθούν οι προεπιλεγμένες επιλογές (που φαίνεται παρακάτω).

     νηπίων: '', // 160-bit DHT NODE ID (buffer ή hex string, προεπιλογή: τυχαία παραγόμενη) εκκίνηση: [], // διακομιστές bootstrap (προεπιλογή: δρομολογητής.δίδυμος.com: 6881, δρομολογητής.ουτάρρος.com: 6881, DHT.μεταφορά.com: 6881) πλήθος: ψευδής, // Host of Local Peer, εάν καθοριστεί τότε ανακοινώνει να προστεθεί στον τοπικό πίνακα (String, απενεργοποιημένη από προεπιλογή) συγχρονισμός: 16, // Επιλογή K-RPC για να καθορίσετε τις μέγιστες ταυτόχρονες αιτήσεις UDP που επιτρέπονται (αριθμός, 16 από προεπιλογή) χασίσι: Λειτουργία, // συνάρτηση προσαρμοσμένου κατακερματισμού (λειτουργία, sha1 από προεπιλογή), kRPC: kRPC(·, // προαιρετική παρουσία K-RPC χρονοβόλος: 900000, // Ελέγξτε κουβάδες κάθε 15 λεπτά μέγας: Απειρο // Προαιρετική ρύθμιση για τους ανακοινωθέντες συνομηλίκους στο Time Out >

    Για να χρησιμοποιήσετε το DHT_STORE, το Set Opts.Επαληθεύστε σε μια εφαρμογή ED25519 SuperCOP/REF10. διαλέγω.Επαληθεύστε (υπογραφή, αξία, publickey) θα πρέπει να επιστρέψει ένα boolean εάν η υπογραφή και τα buffers αξίας δημιουργήθηκαν από το publickey .

    Για παράδειγμα, για το dht_store μπορείτε να κάνετε:

    εισαγωγή ed από 'ED25519-SUPERCOP' κονσερβός DHT = νέος DHT( επαληθεύω: ed.επαληθεύω >·

    Βρείτε συνομηλίκους για το δεδομένο hash info.

    Αυτό κάνει μια αναδρομική αναζήτηση στο DHT. Οι πιθανοί συνομηλίκοι που ανακαλύπτονται εκπέμπονται ως συμβάντα ομοτίμων. Δείτε το συμβάν Peer παρακάτω για περισσότερες πληροφορίες.

    Το InfoHash μπορεί να είναι συμβολοσειρά ή buffer. Η επανάκληση ονομάζεται όταν η αναδρομική αναζήτηση έχει τερματιστεί και καλείται με δύο παραμέτρους. Το πρώτο είναι σφάλμα ή μηδέν. Ο δεύτερος είναι ο αριθμός των κόμβων που βρέθηκε ότι είχαν συνομηλίκους. Συνήθως δεν χρειάζεται να χρησιμοποιείτε αυτές τις πληροφορίες και μπορείτε απλά να ακούσετε συμβάντα ομότιμων.

    Επιστρέφει μια συνάρτηση abort () που θα μας επιτρέψει να ακυρώσουμε το ερώτημα.

    DHT.Ακούστε ([θύρα], [διεύθυνση], [OnListening])

    Κάντε το DHT να ακούσει τη δεδομένη θύρα . Εάν η θύρα είναι απροσδιόριστη, μια διαθέσιμη θύρα συλλαμβάνεται αυτόματα.

    Εάν η διεύθυνση είναι απροσδιόριστη, το DHT θα προσπαθήσει να ακούσει όλες τις διευθύνσεις.

    Εάν ορίσει η επιτόπια επανάληψη, συνδέεται με την εκδήλωση ακρόασης.

    Επιστρέφει ένα αντικείμενο που περιέχει τις πληροφορίες διεύθυνσης για την υποδοχή ακρόασης του DHT. Αυτό το αντικείμενο περιέχει ιδιότητες, οικογενειακές και θύρες.

    DHT.ανακοινώστε (infohash, [port], [callback])

    Ανακοινώστε ότι ο ομότιμος, ο έλεγχος του κόμβου ερωτήματος, κατεβάζει ένα torrent σε μια θύρα.

    Εάν παραλείψετε τη θύρα, θα οριστεί η επιλογή Εμπορευμένης θύρας και άλλοι συνομηλίκοι θα χρησιμοποιήσουν το κοινό θύρα DHT ως αναφερόμενο λιμάνι σας.

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

    Ένα "συμβόλιο" είναι μια αδιαφανής τιμή που πρέπει να παρουσιαστεί για έναν κόμβο για να ανακοινώσει ότι ο ελεγκτής του, κατεβάζει ένα torrent. Πρέπει να παρουσιάσει το διακριτικό που έλαβε από τον ίδιο queried Node σε πρόσφατο ερώτημα για συνομηλίκους. Αυτό είναι για να εμποδίσει τους κακόβουλους οικοδεσπότες να εγγραφούν άλλοι οικοδεσπότες για torrents. Όλη η διαχείριση συμβόλων αντιμετωπίζεται εσωτερικά από αυτήν την ενότητα.

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

    Επιστρέφει την τρέχουσα κατάσταση του DHT, συμπεριλαμβανομένων των κόμβων DHT και των τιμών BEP44.

    < "Κόμβοι": [], "αξίες": <>>

    Οι κόμβοι DHT, ειδικότερα, είναι χρήσιμοι για να επιμείνουν το DHT να δίσκο μεταξύ επανεκκίνησης ενός πελάτη BitTorrent (όπως συνιστάται από το spec). Κάθε κόμβος στον πίνακα είναι ένα αντικείμενο με ιδιότητες Host (String) και θύρας (αριθμός).

    Για να επαναφέρετε τους κόμβους DHT όταν δημιουργείτε ένα νέο αντικείμενο DHT, απλά βρόχο πάνω από τους κόμβους του πίνακα και προσθέστε τα με τη μέθοδο AddNode.

    κονσερβός DHT1 = νέος DHT(· // κάποια στιγμή περνάει . // Καταστρέψτε το DHT κονσερβός κόμβοι = DHT1.Tojson(·.κόμβοι DHT1.καταστρέφω(· // κάποια στιγμή περνάει . // αρχικοποιήστε ένα νέο DHT με τον ίδιο πίνακα δρομολόγησης με το πρώτο κονσερβός DHT2 = νέος DHT(· κόμβοι.για κάθε(λειτουργία (κόμβος·  DHT2.addNode(κόμβος· >·

    Προσθέστε με μη αυτόματο κόμβο τον κόμβο στον πίνακα δρομολόγησης DHT. Εάν υπάρχει χώρος στον πίνακα δρομολόγησης (ή ένας μη ανταποκρινόμενος κόμβος μπορεί να εκδιωχθεί για να κάνει χώρο), ο κόμβος θα προστεθεί. Εάν όχι, ο κόμβος δεν θα προστεθεί. Αυτό είναι χρήσιμο να καλέσετε όταν ένα σύρμα ομοτίμων στέλνει ένα μήνυμα θύρας για να μοιραστείτε τη θύρα DHT τους.

    Ένας κόμβος πρέπει να μοιάζει με αυτό:

     πλήθος: κόμβος, Λιμάνι: δεξαμενόπλοιο >

    Καταστρέψτε το DHT. Κλείνει την υποδοχή και καθαρίζει μεγάλους πόρους δομής δεδομένων.

    Γράψτε ένα αυθαίρετο ωφέλιμο φορτίο στο DHT. (BEP 44).

    Για όλα τα αιτήματα, πρέπει να καθορίσετε:

    • διαλέγω.V - Ένα ωφέλιμο φορτίο buffer για εγγραφή, λιγότερο από 1000 bytes

    Εάν καθορίζετε μόνο τα επιλέγματα.V, το περιεχόμενο θεωρείται αμετάβλητο και το hash θα είναι απλώς το hash του περιεχομένου.

    Ακολουθεί ένα απλό παράδειγμα δημιουργίας κάποιου αμετάβλητου περιεχομένου στο DHT:

    εισαγωγή DHT από 'BitTorrent-DHT' κονσερβός DHT = νέος DHT(· κονσερβός αξία = Ρυθμιστής.παραπλανώ(200·.γέμισμα('αλφάβητο'· DHT.βάζω( v: αξία >, λειτουργία (πλανώμαι, χασίσι·  κονσόλα.λάθος('Σφάλμα =', πλανώμαι· κονσόλα.κούτσουρο('hash =', χασίσι· >·

    Για μεταβλητό περιεχόμενο, ο κατακερματισμός θα είναι το hash του δημόσιου κλειδιού, επιλέγει.κ . Αυτές οι επιλογές είναι διαθέσιμες:

    • διαλέγω.K - ED25519 Buffer Public Key (32 bytes) (Απαιτείται)
    • διαλέγω.Sign (BUF) - Λειτουργία για τη δημιουργία ενός buffer υπογραφής ED25519 (64 bytes) που αντιστοιχεί στο OPTS.k δημόσιο κλειδί (απαιτείται)
    • διαλέγω.SEQ - Προαιρετική ακολουθία (ακέραιος), πρέπει να αυξάνεται μονοτονικά (απαιτείται)
    • διαλέγω.CAS-Προαιρετική προηγούμενη ακολουθία για σύγκριση και Swap
    • διαλέγω.Αλάτι - Προαιρετικό buffer άλατος για να συμπεριλάβει (

    Σημειώστε ότι το BitTorrent BEP44 χρησιμοποιεί ED25519. Μπορείτε να χρησιμοποιήσετε το πακέτο ED25519-SUPERCOP για να δημιουργήσετε τις κατάλληλες υπογραφές, το BitTorrent-DHT-Store-Keypair, το BitTorrent-DHT-Sodium ή για μια πιο βολική έκδοση.

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

    εισαγωγή ed από 'BitTorrent-DHT-sodium' κονσερβός πληκτρολόγιο = ed.keygen(· κονσερβός αξία = Ρυθμιστής.παραπλανώ(200·.γέμισμα('οτιδήποτε'· // το ωφέλιμο φορτίο που θέλετε να στείλετε κονσερβός διαλέγω =  κ: πληκτρολόγιο.PK, γαρύκη: 0, v: αξία, σημάδι: λειτουργία (κτηνοτροφία·  ΕΠΙΣΤΡΟΦΗ ed.σημάδι(κτηνοτροφία, πληκτρολόγιο.SK· > > εισαγωγή DHT από 'BitTorrent-DHT' κονσερβός DHT = νέος DHT(· DHT.βάζω(διαλέγω, λειτουργία (πλανώμαι, χασίσι·  κονσόλα.λάθος('Σφάλμα =', πλανώμαι· κονσόλα.κούτσουρο('hash =', χασίσι· >·

    Σε μεταβλητές ή αμετάβλητες μορφές, οι πυρκαγιές επανάκλησης (σφάλμα, hash, n) με σφάλμα εάν κανένας κόμβων δεν μπόρεσε να αποθηκεύσει την τιμή . n έχει ρυθμιστεί η ποσότητα των συνομηλίκων που δέχτηκαν το put και το hash, τη θέση όπου μπορεί να ανακτηθεί το μεταβλητό ή αμετάβλητο περιεχόμενο (με DHT.Πάρτε (hash)).

    Σημειώστε ότι πρέπει να καλέσετε .Βάλτε () κάθε ώρα για περιεχόμενο που θέλετε να κρατήσετε ζωντανό, αφού οι κόμβοι μπορούν να απορρίψουν τους κόμβους δεδομένων άνω των 2 ωρών.

    Εάν λάβετε ένα ζευγάρι κλειδιού/αξίας και θέλετε να προσθέσετε ξανά στο DHT για να το κρατήσετε ζωντανό, μπορείτε απλά να το βάλετε ξανά.

    εισαγωγή ed από 'BitTorrent-DHT-sodium' κονσερβός DHT = νέος DHT( επαληθεύω: ed.επαληθεύω >· // Πρέπει να καθορίσετε την παράμετρο "επαλήθευση" εάν θέλετε να λάβετε μεταβλητό περιεχόμενο, διαφορετικά θα επιστραφεί το NULL DHT.παίρνω(κλειδί, λειτουργία (πλανώμαι, ερυθρός·  DHT.βάζω(ερυθρός, λειτουργία (·  // επανέφερε το ζεύγος κλειδιών/αξίας >· >·

    DHT.Πάρτε (hash, epts, callback)

    Διαβάστε μια εγγραφή δεδομένων (δημιουργήθηκε με .put ()) από το DHT. (BEP 44)

    Δεδομένου ότι ο Hash, ένα hex string ή buffer, περιεχόμενο δεδομένων αναζήτησης από το DHT, στέλνοντας το αποτέλεσμα σε επανάκληση (err, res) .

    Αυτές οι επιλογές είναι διαθέσιμες:

    • διαλέγω.Επαληθεύστε - παρακάμπτετε την προεπιλεγμένη συνάρτηση επαλήθευσης ED25519 που παρέχεται κατά τη διάρκεια της παράστασης DHT.
    • διαλέγω.Αλάτι - Προαιρετικό buffer άλατος (εάν υπάρχει) που χρησιμοποιήθηκε για τον υπολογισμό του hash. Πρέπει να καθοριστεί εάν περιλαμβάνεται στο hash.
    • διαλέγω.Cache - Χρησιμοποιήστε τοπικά αποθηκευμένη τιμή απόκρισης όταν είναι διαθέσιμη αντί να εκτελείτε μια αναζήτηση δικτύου (προεπιλογές στο True).

    Τα αντικείμενα RES είναι παρόμοια με τα αντικείμενα επιλογών που γράφονται στο DHT με .βάζω() :

    • ερυθρός.V - Η τιμή που τοποθετήθηκε
    • ερυθρός.ID - Ο κόμβος που επέστρεψε το περιεχόμενο
    • ερυθρός.K - Το δημόσιο κλειδί (που υπάρχει μόνο για μεταβλητά δεδομένα)
    • ερυθρός.SIG - Η υπογραφή (που υπάρχει μόνο για μεταβλητά δεδομένα)
    • ερυθρός.SEQ - Η ακολουθία (προαιρετική, που υπάρχει μόνο για μεταβλητά δεδομένα)

    Εκπομπή όταν το DHT είναι πλήρως bootstrapped (i.μι. Ο πίνακας δρομολόγησης είναι επαρκώς γεμάτος μέσω των κόμβων bootstrap). Σημειώστε ότι είναι εντάξει να κάνετε αναζητήσεις πριν από την εκδήλωση "έτοιμη".

    Σημείωση: Εάν αρχικοποιήσετε το DHT με το < bootstrap: false >Επιλογή, τότε η εκδήλωση "Ready" θα πυροβολήσει στο επόμενο τσιμπούρι, ακόμη και αν δεν υπάρχουν κόμβοι στον πίνακα δρομολόγησης. Θεωρείται ότι θα συμπληρώσετε χειροκίνητα τον πίνακα δρομολόγησης με DHT.addNode αν περάσετε αυτήν την επιλογή.

    Εκπομπή όταν το DHT ακούει.

    DHT.στο ('peer', λειτουργία (peer, infohash, από) < . >·

    Εκπέμπεται όταν βρεθεί ένας πιθανός ομότιμος. ο ομότιμος είναι της φόρμας . Το Infohash είναι το χείλος του Torrent info του σμήνους που ανήκει ο ομότιμος. Εκπέμπεται σε απάντηση σε μια κλήση αναζήτησης (infohash).

    DHT.στο ('Σφάλμα', Λειτουργία (ERR) < . >·

    Εκπομπή όταν το DHT έχει ένα θανατηφόρο σφάλμα.

    DHT.στο ("Κόμβος", λειτουργία (κόμβος) < . >·

    Εκπομπή όταν το DHT βρίσκει έναν νέο κόμβο.

    DHT.στο (&laquo;ανακοινώσεις&raquo;, λειτουργία (peer, infohash) < . >·

    Εκπομπή όταν ένας ομότιμος ανακοινώνει για να αποθηκευτεί στο DHT.

    DHT.στο (&laquo;προειδοποίηση&raquo;, λειτουργία (err) < . >·

    Εκπομπή όταν το DHT λαμβάνει ένα απροσδόκητο μήνυμα από έναν άλλο κόμβο DHT. Αυτό είναι καθαρά ενημερωτικό.

    • Πρωτόκολλο Bittorrent DHT
    • Kademlia: Ένα σύστημα πληροφοριών από ομοτίμους που βασίζεται στη μέτρηση XOR

    Το MTE εξηγεί: πώς λειτουργεί το BitTorrent DHT Peer Discovery

    Η ανακάλυψη από ομοτίμους αποτελεί ουσιαστικό μέρος του πρωτοκόλλου BitTorrent. Το&rsquo;S Πώς οι λήψεις του συμβαίνουν τόσο γρήγορα: Συνδέεστε με πολλούς ανθρώπους και καθένας από αυτούς ανεβάζει ένα μικρό κομμάτι του αρχείου σε εσάς. Αυτό το φαινόμενο δημιούργησε έναν πολύ δημοφιλή τρόπο λήψης και κοινής χρήσης πληροφοριών στο Διαδίκτυο, τόσο νόμιμο όσο και παράνομο. Ανεξάρτητα από τα αποτελέσματα που είχε στην πνευματική ιδιοκτησία, εγώ&rsquo;εδώ για να περιγράψω ένα πράγμα: πώς λειτουργεί πραγματικά το BitTorrent DHT Peer Discovery. Μπορεί να γνωρίζετε λίγο (ή πολλά) σχετικά με αυτόν τον μηχανισμό, αλλά σίγουρα εσείς&rsquo;είναι περίεργος να μάθετε τι σημαίνει ο όρος DHT και πώς οι συνομηλίκοι που αναφέρονται κάτω από αυτό σας βρήκαν στην πρώτη θέση.

    Τι σημαίνει DHT?

    Το DHT είναι σύντομο για &ldquo;κατανεμημένος πίνακας κατακερματισμού,&rdquo; και αντιπροσωπεύει ένα μέσο με το οποίο βρίσκετε τους συνομηλίκους, γνωστό και ως &ldquo;εκκίνηση.&rdquo; Εγώ&rsquo;Θα το εξηγήσω λίγο. Απλά να έχετε κατά νου το γεγονός ότι μπορείτε να βρείτε συνομηλίκους μέσω του DHT.

    Τοποθεσία BitTorrent DHT

    Ενώ πολλοί άνθρωποι το λένε&rsquo;αποκεντρωμένο, αυτό&rsquo;είναι πραγματικά πολύ δύσκολο να γίνει αυτό, δεδομένης της unicast φύση του Διαδικτύου. Όταν συνδέεστε στον ιστό, δεν κάνετε&rsquo;να ανακοινώσετε την παρουσία σας στα δισεκατομμύρια υπολογιστές που έχουν ήδη συνδεθεί. Αυτό θα σπαταλούσε τεράστιες ποσότητες εύρους ζώνης. Αντ 'αυτού, ο τοπικός παροχέας υπηρεσιών Διαδικτύου&rsquo;Ο δρομολογητής, καθώς και οι προορισμοί που συνδέετε, είναι οι μόνοι που σας γνωρίζουν&rsquo;είναι ακόμη και σε απευθείας σύνδεση. Οτι&rsquo;τι &ldquo;άτακτος&rdquo; σημαίνει, στο λαϊκό&rsquo;όροι. Το Multicast είναι αυτό που συμβαίνει όταν ο υπολογιστής σας μπαίνει σε τοπικό δίκτυο. Η παρουσία του είναι γνωστή σε κάθε άλλο υπολογιστή στο ίδιο υποδίκτυο, και αυτοί&rsquo;Γνωρίστε τώρα την παρουσία σας. Δεδομένου ότι αυτό δεν&rsquo;να συμβεί στο εξωτερικό διαδίκτυο, εκεί&rsquo;Δεν υπάρχει κανένας τρόπος να συνθέσει πραγματικά μια εντελώς αποκεντρωμένη δομή, δεδομένου των περιορισμών του ίδιου του πρωτοκόλλου BitTorrent.

    Ως αποτέλεσμα, τείνει να υπάρχουν δύο κύρια DHT που συνδέεστε όταν αρχίζετε να κατεβάζετε ένα αρχείο torrent: δρομολογητής.δίδυμος.com και δρομολογητής.ουτάρρος.com. Σε περίπτωση που εσύ&rsquo;Επανείται, συνδέεστε με αυτά στη θύρα 6881. Το&rsquo;δεν είναι απολύτως απαραίτητο για να απομνημονεύσετε αυτές τις πληροφορίες. Μερικές φορές τα δεδομένα από ομοτίμους είναι ενσωματωμένα στο αρχείο torrent για να διευκολύνουν τη διαδικασία εύρεσης συνομηλίκων.

    Εκκίνηση

    bitdht-discovery

    Για να ξεκινήσετε τη συλλογή συνομηλίκων, πρέπει πρώτα. Το bootstrapping είναι απλώς ένας φανταχτερό τρόπος περιγραφής της διαδικασίας σύνδεσης με το DHT και της εύρεσης συνομηλίκων. Μόλις συνδεθεί, ο διακομιστής DHT θα στείλει μια χούφτα διευθύνσεις IP από ομοτίμους που εσείς&rsquo;Θα συνδεθείτε επίσης. Αυτοί&rsquo;Θα σας δώσω τις διευθύνσεις των συνομηλίκων που συνδέονται με αυτές και ούτω καθεξής και ούτω καθεξής, μέχρι να εμφανιστεί ο κατάλογος των ομοτίμων σας&rsquo;Προσπαθώ να φτάσετε. Το&rsquo;σαν να ακολουθείτε ένα δέντρο από τις ρίζες στα κλαδιά.

    Θεωρητικά μιλώντας, χρειάζεστε μόνο μια ενιαία διεύθυνση ομότιμων για να αποκτήσετε όλους τους άλλους συνομηλίκους, καθώς θα μοιραστεί μαζί σας τις υπόλοιπες διευθύνσεις μαζί σας. Αυτό εξοικονομεί ιχνηλάτες και το DHT έναν τόνο εύρους ζώνης που διαφορετικά θα σπαταληθεί στην αποστολή καταλόγων συνομηλίκων σε κάθε νέο Peer Connected και να ειδοποιήσει κάθε άτομο όταν ένας από αυτούς αποσυνδέεται. Η ταλαιπωρία ελαχιστοποιείται κάνοντας πληροφορίες αναμετάδοσης των συνομηλίκων μεταξύ τους.

    Μετά απο εσένα&rsquo;Βρήκα όλους τους συνομηλίκους σας, ξεκινά η λήψη σας!

    Εάν οι DHTs είναι εκεί έξω, γιατί οι περισσότεροι άνθρωποι εξακολουθούν να χρησιμοποιούν ιχνηλάτες?

    Το DHT μπορεί να είναι διασκεδαστικό, αλλά οι περισσότεροι άνθρωποι εξακολουθούν να χρησιμοποιούν ιχνηλάτες για να κατεβάσουν τα δεδομένα τους. Αυτό οφείλεται στην εγγενή φύση του DHT. Αφήνω&rsquo;λέω ότι έχω έναν ιστότοπο όπου ανεβάζω ένα μάτσο από τις δημιουργίες ανοιχτού κώδικα ως torrents. Για να ελέγξετε πλήρως τι συμβαίνει σε αυτούς τους χείμαρρους και να προστατεύσετε το απόρρητο των ατόμων που τους κατεβάζουν, αυτό&rsquo;είναι πιο προσοδοφόρο για μένα να φιλοξενήσω το δικό μου tracker. Τοποθεσίες που δημοσιεύουν παράνομη λήψη υλικών χρησιμοποιούν τους ιχνηλάτες ως μέσο προτίμησης για να διατηρήσουν μια υπόγεια πτυχή και να ελέγξουν τι δημοσιεύεται σε αυτά και τι αφαιρείται.

    Τούτου λεχθέντος, δεν είναι όλες οι λήψεις Torrent. Εκεί&rsquo;είναι ένα τεράστιο αποθετήριο έργων ανοιχτού κώδικα και έργων δημόσιου τομέα από άτομα που θέλουν απλώς να μοιραστούν αυτό που έχουν χωρίς να χάνουν το εύρος ζώνης των οικοδεσποτών τους στο διαδίκτυο.

    Ταραγμένος?

    Αν εσύ&rsquo;Εξακολουθεί να είναι αμηχανία από τις πληροφορίες που μοιράζονται εδώ, αφήστε ένα σχόλιο παρακάτω και μπορούμε να συζητήσουμε!

    Miguel Leiva-Gomez

    Ο Miguel υπήρξε εμπειρογνώμονας ανάπτυξης και τεχνολογίας για περισσότερο από μια δεκαετία και έχει γραπτό λογισμικό για ακόμη μεγαλύτερο χρονικό διάστημα. Από το μικρό του κάστρο στη Ρουμανία, παρουσιάζει κρύες και αναλυτικές προοπτικές σε πράγματα που επηρεάζουν τον κόσμο της τεχνολογίας.

    Εγγραφείτε στο ενημερωτικό δελτίο μας!

    Τα τελευταία μας μαθήματα παραδόθηκαν κατευθείαν στα εισερχόμενά σας

Μήπως το Bitlocker Slow Windows 10? Το Bixby κοστίζει χρήματα?

Related Posts

how_to_stay_safe_on_onlyfans_5

Νίσα

OnlyFans Free Pages vs Paid: How Access Differs

onlyfans_help_center

Νίσα

Budgeting Tips and PPV Across Free OnlyFans Pages

6a0b117e02549eec1a0db52c_infographic_user_growth_bar_chart-1

Νίσα

Safe Browsing Protocols for Zero-Dollar OnlyFans Pages

banner
banner

PROMO

racavedigger.com
© racavedigger.com 2026