Jak działa BitTorrent tylko z połączeniami wychodzącymi?

18

Jaki jest mechanizm pozwalający BitTorrentowi pracować tylko z połączeniami wychodzącymi?

To znaczy bez przekierowania portów.

Brian's BitTorrent FAQ i przewodnik mówi:

BitTorrent zwykle działa dobrze w środowisku NAT (translacja adresów sieciowych), ponieważ może działać tylko z połączeniami wychodzącymi.

Czy w tym przypadku inne komputery równorzędne działają jako serwery spotkania?

Peter Mortensen
źródło

Odpowiedzi:

8

O ile mi wiadomo, działa przy użyciu połączeń zwrotnych - w zasadzie klient wykonuje połączenie wychodzące, które jest utrzymywane przez zdalną maszynę i pompuje dane przez to samo połączenie.

Gdyby wszyscy tego użyli i nikt nie skonfigurował portów, najprawdopodobniej by się nie powiodło. Kiedy korzystam z Bittorenta z wyłączonymi portami, otrzymuję przerażające prędkości, ale działa, dlatego myślę, że działa w ten sposób.

William Hilsum
źródło
Dlaczego ta metoda miałaby skutkować niższymi prędkościami niż gdyby porty były przekazywane?
gsingh2011
@ gsingh2011 jest wiele powodów ... najczęstszym z BT jest to, że może przekazywać Cię przez inne osoby, więc prędkość pobierania może być ograniczona przez prędkość przesyłania innych osób.
William Hilsum
Dla trackera jest to słuszne i nie stanowi problemu. ale do pobrania nie jest to prawdą. ponieważ mechanizm pobierania bit torrent wymaga pobrania od innych partnerów. inni rówieśnicy mogą być za NAT (jak ty). Jak bit torrent działa za NAT?
SMMousavi,
4
Jest to częściowa odpowiedź dotycząca ogólnych technik przejścia NAT. Prawdziwe pytanie brzmi: skąd wiesz, że ktoś chce pobrać od ciebie niektóre bloki plików, skoro nie akceptujesz żadnych niepożądanych połączeń? Istnieją więc tylko ograniczone możliwości: moduł śledzący ostrzega Cię lub aktywnie łączysz się z kilkoma klientami śledzącymi w celu zainicjowania sesji komunikacji równorzędnej (aby w pewnym momencie mogli poprosić o pobranie plików) lub akceptujesz tylko żądania od urządzeń równorzędnych, które pobierasz aktywnie z lub tych rówieśników działa jako punkty Rendez-Vous. Jaka propozycja jest zaimplementowana w kliencie torrent?
KrisWebDev
5

BitTorrent działa przy użyciu połączenia P2P. Dlatego musi istnieć sposób bezpośredniego połączenia z peerem. Jak wiesz, NAT przerywa działanie P2P. Ale jest na to jakieś rozwiązanie. Większość (jak wiem wszystko) opiera się na protokole STUN.

Każdy klient otrzymuje swój publiczny adres IP i tymczasowy numer portu (UDP) za pomocą serwera STUN. Serwer STUN pomaga klientowi wykryć obecność NAT i wykryć publiczny adres IP + tymczasowy numer portu (przypisany przez NAT). Następnie klient próbuje nawiązać bezpośrednie połączenie z innym komputerem za pomocą techniki dziurkowania (patrz wikipedia ).

Jeśli włączyłeś UPnP, istnieje również inne rozwiązanie.

Aby uzyskać więcej informacji, zobacz NAT Traversal na wikipedii .

SMMousavi
źródło
1

Zwykle ludzie będą się z tobą łączyć, aby poprosić o dane, a ty będziesz łączyć się z osobami, które o nie proszą.

Jeśli połączenia przychodzące są niemożliwe, Twój klient również wyjdzie i poprosi o przekazanie danych innym osobom (i może to zrobić, jeśli połączenia przychodzące są również możliwe).

Nie przesyłasz tak dużo w ten sposób, ale nie jest to problemem dla publicznych trackerów.

Jeffrey Aylesworth
źródło