Jeśli mam torrent bez żadnych trackerów, a ja właśnie zacząłem bittorent klienta, więc nie mam jeszcze rówieśników ... skąd mam wiedzieć, z kim po raz pierwszy połączyć się z DHT? Wygląda na to, że musiałbym znać co najmniej JEDNEGO węzła w DHT, aby zacząć ...W jaki sposób DHT w kliencie Bittorent dostaje "bootstrapped"?
Odpowiedz
Kiedy klient BitTorrent łączy się z DHT, istnieje pierwsze miejsce, w którym znajduje się peer. Z oryginalnym klientem BitTorrent, był URL do bitorrent.com, który pomógłby zacząć wszystko. Próbowałem wyszukać odnośnik, ale nie mogłem go znaleźć. Po nawiązaniu połączenia z innymi klientami, możesz wykonać numer announce
w sieci DHT, aby znaleźć rówieśników dla torrenta, którego szukasz.
Oto link do BitTorrent specs omawiający DHT.
Słownik bez torrentów ma nie ma przycisku "ogłosić". Zamiast tego torrentless torrent ma klucz "węzłów". Ten klucz powinien być ustawiony na najbliższe węzły w torrentu generujące tabelę routingu klienta. Alternatywnie, klucz można ustawić na znanego dobrego węzła, takiego jak obsługiwany przez osobę generującą torrent. Nie dodawaj automatycznie "router.bittorrent.com" do plików torrentowych ani nie dodawaj automatycznie tego węzła do tabel routingu klientów .
"ogłaszasz" w sieci DHT? Myślałem, że zrobiłeś 'get_peers()' lub nawet abstrakcyjne 'get()', aby znaleźć rówieśników? – gsk
Potrzebujesz rozmówców z jakiegoś innego torrenta, aby porozmawiać. Jak już powiedziałeś, nie masz tych, z którymi nie masz wiele do ...
Główne węzły ładowania początkowego DHT to router.utorrent.com
i CNAME do niego, router.bittorrent.com
. Port 6881
.
Dzięki! To może być jedyne miejsce w sieci, w którym pełne adresy są podane w postaci zwykłego tekstu. –
Jeśli spojrzysz na DNS, rozwiążesz tę samą lokalizację, a router.bittorent.com będzie CNAME na routerze.utorrent.com. Są tym samym węzłem. – anthonyryan1
Klient może dowiedzieć się o innych równorzędnych użytkownikach DHT poprzez interakcje z nimi. Wsparcie klienta dla DHT jest reklamowane w jego Handshake. Gdy klient odkryje co najmniej jednego dobrego, dobrze powiązanego partnera DHT, może poruszać się po DHT, aby znaleźć coraz bliższych rówieśników DHT. Zapamiętuje te węzły, zwane węzłami w DHT-speak, pomiędzy restartami oprogramowania i utrzymują/aktualizują listę w sposób ciągły, gdy jest uruchomiony. W gorszym przypadku, gdy klient wie o braku dobrych partnerów obsługujących DHT, będzie musiał pobrać torrentowy torrent, aby mieć nadzieję, że skontaktuje się z kilkoma dobrymi kolegami obsługującymi DHT, których uczy się za pośrednictwem trackera.
Aktualizacja: za to wstępna lista DHT rówieśników, jak @Seppo wskazuje potok klient może korzystać z jednego lub więcej nazw twarde kodowane DNS, aby znaleźć adresy znanych rówieśników, a to może również zawierają również zakodowaną listę rówieśników jako ostateczny element zastępczy. Jednym ograniczeniem systemu DNS jest jednak brak informacji o porcie, dlatego domyślnie przyjmuje się port 6881, podczas gdy inne środki obsługują równorzędne systemy działające na różnych portach.
na wykres na dole tej strony DHT monitoring project pokazuje
- dht.transmissionbt.com
- router.utorrent.com
- router.bittorrent.com
jak bootstrappingu peers
BitTorrent opublikował kod źródłowy, więc teraz możesz uruchomić własną maszynę bootstrap DHT: https://github.com/bittorrent/bootstrap-dht – Encombe
W BitTorrent, masz trzy główne opcje:
- torrent Plik: niektóre pliki torrent można osadzać
nodes
, aby połączyć się w DHT z (w fakt, jest zalecany przy tworzeniu pliku torrentowego) - Hardcoding: Niektórzy klienci torrenta kodują kilka węzłów bootstrap (np. przez stk). Zwykle są prowadzone przez firmy i organizacje z długimi serwerami.
- Rozmowy PEX/Peer: Zazwyczaj można poprosić o węzły DHT od osób, z których pobierasz inne torrenty (jeśli klienci rozumieją język innych użytkowników, tzn. Niektóre wersje są niekompatybilne).
Transmission
używa hardcoded bootstrap node dla DHT, jeśli nie ma innego sposobu, aby dostać rówieśników:
bootstrap_from_name("dht.transmissionbt.com", 6881, bootstrap_af(session));
Chyba każdy klient torrent wykorzystuje własny węzeł startowej.
Dla przypomnienia, Deluge wykorzystuje również hardcoded boostrap nodes:
self.session.add_dht_router("router.bittorrent.com", 6881)
self.session.add_dht_router("router.utorrent.com", 6881)
self.session.add_dht_router("router.bitcomet.com", 6881)
Wszystkie odpowiedzi tutaj tylko ciowo odpowiada na pytanie. Dobra, pełna odpowiedź od 8472 znajduje się tutaj: http://stackoverflow.com/questions/10999786/how-pex-protocol-magnetic-links-finds-it-first-ip/11089702#11089702 – Encombe