Streszczenie
W tym artykule zbadamy, czy Utorrent używa TCP lub UDP. Omówimy UTP (Protokół transportu Utorrent) i jego wdrożenie w Libtorrent. Dodatkowo zbadamy uzasadnienie użycia UTP i wady innych technik przydziału przepustowości. Na koniec wyjaśnimy mechanizm kontroli zatłoczenia w UTP znany jako Ledbat.
1. Czy Utorrent używa TCP lub UDP?
Utorrent wykorzystuje przede wszystkim TCP jako protokół transportu, ale wykorzystuje również UTP (Protokół transportu Utorrent) do kontroli przeciążenia i wydajnego przydziału przepustowości.
2. Co to jest UTP?
UTP to protokół transportowy zaprojektowany specjalnie do aplikacji BitTorrent, takich jak Utorrent. Wykorzystuje jednokierunkowe pomiary opóźnienia dla swojego kontrolera zatorów, umożliwiając lepsze zarządzanie przeciążeniem sieciowym.
3. Jakie są wspólne problemy, z którymi napotykają użytkownicy z BitTorrentem?
Niektóre typowe problemy, przed którymi stoją użytkownicy z BitTorrent, to routery domowe awarie lub spowalniające z powodu przepełnionych tabel napinków NAT, awarie routera spowodowane ruchem UDP z rozproszonych tabel hash (DHT) oraz opóźnienia spowodowane wypełnieniem bufora wysyłania DSL lub modemów kablowych.
4. Jak te problemy są zwykle rozwiązywane?
Jednym z powszechnych rozwiązań jest skonfigurowanie limitu prędkości przesyłania, aby zapobiec zatorowi. Często zaleca się ustawienie limitu na 80% pojemności łącza w górę. Jednak to podejście ma wady, ponieważ wymaga od użytkowników skonfigurowania ustawienia i może nie efektywnie wykorzystywać dostępnej przepustowości.
5. Jakie są wady ograniczania stawki?
Wady ograniczania stawek obejmują potrzebę konfiguracji użytkownika i zmarnowanej przestrzeni, gdy użytkownik nie aktywnie korzysta z połączenia internetowego. Ponadto przydzielone 20% na interaktywny ruch może nie zapewnić zadowalającego przeglądania.
6. W jaki sposób UTP dotyczy tych wad?
UTP ma dynamiczne przydzielenie przepustowości, wykorzystując 100% na BitTorrent, gdy w razie potrzeby nie ma interaktywnego ruchu krzyżowego i 100%. Takie podejście unika marnowania przepustowości w okresach bezczynnych i zapewnia lepsze wrażenia dla użytkowników.
7. Dlaczego TCP powoduje opóźnienia w całym ruchu?
Kontrola zatorów TCP opiera się przede wszystkim na wykryciu utraty pakietów. Gdy bufor wysyłania modemu jest pełny, pakiety nie zostaną upuszczone, dopóki cała kolejka nie będzie pełna. TCP wykryje utratę pakietu i spowolni jego szybkość wysyłania, ale szybko wzrośnie, aż bufor będzie pełny, powodując opóźnienia dla całego ruchu.
8. W jaki sposób TCP kontroluje jego szybkość wysyłania?
TCP ogranicza liczbę bajtów w locie w danym momencie za pomocą okna zatoru (CWND). Szybkość wysyłania jest proporcjonalna do CWND podzielona przez czas podróży w obie strony (RTT). Mniejszy CWND powoduje niższą szybkość wysyłania, podczas gdy większy CWND pozwala na wyższą szybkość wysyłania.
. Jakie jest zachowanie kontroli przeciążenia TCP?
Zachowanie kontroli zatorów TCP tworzy kształt zębów piciarki, w którym zwiększa swoją szybkość wysyłania, aż uderzy w sufit, wycofuje się, a następnie znów zacznie się rosnąć. To zachowanie może zapobiec pełnemu wykorzystaniu pojedynczego strumienia TCP.
10. Co to jest kontroler zatorów Ledbat?
Kontroler przeciążenia w UTP nazywa się Ledbat, który oznacza niskie dodatkowe opóźnienie transportu tła. LEDBAT to grupa robocza IETF, która próbuje standaryzować algorytm kontroli przeciążenia. Reaguje na utratę pakietów i zmiany opóźnień w celu optymalizacji wydajności sieci.
Wniosek
Podsumowując, Utorrent używa przede wszystkim TCP, ale także zawiera protokół UTP do kontroli zatorów. Kontroler zatorów Ledbat z LEDP dynamicznie przydziela przepustowość na ruch bittorrent, zmniejszając opóźnienia i poprawę ogólnej wydajności sieciowej. Takie podejście oferuje zalety w zakresie tradycyjnych technik ograniczania stawek, zapewniając lepsze wrażenia użytkownika w okresach interaktywnych i bezczynnych.
Czy Utorrent używa TCP lub UDP
TCP został zaprojektowany w celu pełnego wykorzystania pojemności łącza, bez powodowania zatorów. Ilekroć wyczuwa zatłoczenie (poprzez utratę pakietu), co się wycofuje. TCP nie jest zaprojektowany w celu utrzymania niskich opóźnień. Kiedy otrzymasz pierwszą utratę pakietu (zakładając rodzaj opisanej powyżej kolejki), jest już za późno. Twoja kolejka jest pełna i masz maksymalne opóźnienie, jakie może zapewnić twój modem.
Czy Utorrent używa TCP lub UDP?
Spis treści
UTP (Utorrent Transport Protocol) to protokół transportowy, który wykorzystuje jednokierunkowe pomiary opóźnienia dla kontrolera zatorów. Ten artykuł jest ogólnie o UTP, a konkretnie o wdrożeniu go LibTorrent.
racjonalne uzasadnienie
Jednym z najczęstszych problemów, które użytkownicy doświadczają korzystania z BitTorrent, jest to, że ich Internet „przestaje działać”.
- Router domowy, który zawiesza się lub zwalnia, gdy jego stół Nat jest przepełniony, wyzwalany przez DHT lub po prostu wiele połączeń TCP.
- Router domowy, który zawiesza się lub spowalnia ruchu UDP (spowodowane przez DHT)
- Domowy DSL lub modem kablowy wypełniony buforem wysyłania przez dane wychodzące, a bufor pasuje do bajtów o wartości sekundy. To dodaje sekundy opóźnienia w interaktywnym ruchu. W przypadku strony internetowej, która wymaga 10 podróży w obie strony, może to oznaczać 10 sekund opóźnienia w porównaniu z bez BitTorrent. Wpływ na Skype lub inne aplikacje wrażliwe na opóźnienie.
Ten dokument obejmie (3).
Zazwyczaj jest to rozwiązane, prosząc użytkownika o wprowadzenie wielu bajtów, które klient może wysyłać na sekundę (i.mi. Ustawienie limitu prędkości przesyłania). Wspólnym zaleceniem jest ustalenie tego limitu na 80% pojemności łącza w górę. Ma to na celu pozostawienie miejsca na rzecz takich rzeczy, jak TCP ACK, a także interaktywne użycie połączenia przez użytkownika, takie jak przeglądanie sieci lub sprawdzanie wiadomości e -mail.
Istnieją dwie główne wady z tą techniką:
- Użytkownik musi aktywnie wykonać to ustawienie (bardzo niewiele protokołów wymaga od użytkownika podania tego rodzaju informacji). Oznacza to również, że użytkownik musi dowiedzieć się, jaka jest jego pojemność podnoszenia. Jest to niestety liczba, której wielu dostawców usług internetowych nie reklamuje się (ponieważ często jest znacznie niższa niż pojemność pobierania), co może utrudnić znalezienie.
- 20% głowica jest marnowana przez większość czasu. Ilekroć użytkownik nie korzysta z połączenia internetowego do niczego, te dodatkowe 20% mogło być używane przez BitTorrent do przesłania, ale są już przydzielone na interaktywny ruch. Ponadto 20% linków w górę często nie wystarczy, aby zapewnić dobre i responsywne przeglądanie.
Idealnym przydziałem przepustowości byłoby wykorzystanie 100% dla BitTorrent, gdy nie ma interaktywnego ruchu krzyżowego, a 100% dla interaktywnego ruchu, gdy tylko jest jakaś. Nie marnowałoby to przepustowości, gdy użytkownik jest na biegu jałowym, i byłoby znacznie lepsze, gdy użytkownik korzysta z połączenia internetowego dla innych rzeczy.
To właśnie robi UTP.
TCP
Powodem, dla którego TCP wypełni bufor wysyłania i spowoduje opóźnienie całego ruchu, jest to, że jego kontrola przeciążenia jest tylko na podstawie utraty pakietów (i limitu czasu).
Ponieważ modem buforuje, pakiety nie zostaną upuszczone, dopóki cała kolejka. Pakiety zostaną upuszczone, TCP wykryje to w ciągu około RTT. Gdy TCP zauważa utratę pakietu, spowolni swoją szybkość wysyłania, a kolejka zacznie znów spływać. Jednak TCP natychmiast zacznie zwiększyć swoją szybkość wysyłania, aż bufor będzie pełny i ponownie wykryje utratę pakietu.
TCP został zaprojektowany w celu pełnego wykorzystania pojemności łącza, bez powodowania zatorów. Ilekroć wyczuwa zatłoczenie (poprzez utratę pakietu), co się wycofuje. TCP nie jest zaprojektowany w celu utrzymania niskich opóźnień. Kiedy otrzymasz pierwszą utratę pakietu (zakładając rodzaj opisanej powyżej kolejki), jest już za późno. Twoja kolejka jest pełna i masz maksymalne opóźnienie, jakie może zapewnić twój modem.
TCP kontroluje swoją szybkość wysyłania, ograniczając liczbę bajtów w locie w danym momencie. Ten limit nazywa się oknem zatorowym (Cwnd w skrócie). W stanie ustalonym okno zatorowe stale rośnie liniowo. Każdy pakiet, który jest pomyślnie przeniesiony, zwiększy CWND.
cwnd send_rate = ---- rtt
Stawka wysyłania jest proporcjonalna do CWND podzielona przez RTT. Mniejszy CWND spowoduje niższą stawkę wysyłania, a większy CWND spowoduje wyższą stawkę wysyłania.
Korzystanie z okna zatoru zamiast kontrolowania szybkości jest proste, ponieważ wprowadza również górną granicę zużycia pamięci dla pakietów, które jeszcze nie zostały zatwierdzone i należy je trzymać.
Zachowanie TCP, gdzie uderza w sufit, wycofuje. Gdyby modem w ogóle nie miał bufora wysyłania, pojedynczy strumień TCP nie byłby w stanie w pełni wykorzystać linku z powodu tego zachowania, ponieważ w pełni wykorzystałby link tuż przed utratą pakietu i wycofaniem.
Kontroler zatorów Ledbat
Kontroler przeciążenia w UTP nazywa się Ledbat, który jest również grupą roboczą IETF, która próbuje go standaryzować. Kontroler przeciążenia, oprócz reakcji na utratę pakietu w taki sam sposób, jak TCP, również reaguje na zmiany opóźnień.
W przypadku dowolnej implementacji UTP (lub LEDBAT) istnieje opóźnienie docelowe. Jest to dopuszczalne opóźnienie i jest w rzeczywistości ukierunkowane na połączenie. Opóźnienie docelowe jest zdefiniowane do 25 ms w Ledbat, Utorrent używa 100 ms, a Libtorrent używa 75 ms. Ilekroć pomiar opóźnienia jest niższy niż cel, CWND jest zwiększony proporcjonalny do (Target_delay – opóźnienie). Ilekroć pomiar jest wyższy niż cel, CWND jest zmniejszony proporcjonalny do (opóźnienie – targel_delay).
Można to po prostu wyrazić jako:
cwnd += gain * (Target_delay - opóźnienie)
Podobnie jak TCP, jest to skalowane tak, aby wzrost wyrównany jest na jednym RTT.
Kontroler liniowy dostosuje cwnd więcej do opóźnień, które są daleko od celu, a mniej dla opóźnień, które są bliskie celowi. To sprawia, że zbiega się z opóźnieniem docelowym. Chociaż z powodu hałasu prawie zawsze jest pewna oscylacja. Ta oscylacja jest zwykle mniejsza niż formy TCP zębów piły.
Liczba po prawej pokazuje, w jaki sposób ruch krzyżowy (TCP) powoduje, że UTP zasadniczo przestanie wysyłać cokolwiek. Jego pomiary opóźnienia są w tym czasie znacznie powyżej celu. W tym teście ruch jest tylko jeden strumień TCP.
Gdy tylko ruch krzyżowy ustanie, UTP odbierze swoją pierwotną szybkość wysyłania w ciągu sekundy.
Ponieważ UTP nieustannie mierzy opóźnienie, z każdym pakietem, czas reakcji na ruch ruchu powodującym opóźnienia to pojedynczy RTT (zazwyczaj ułamek sekundy).
Jeden sposób opóźnia
UTP mierzy opóźnienie narzucone na pakiety wysyłane do drugiego końca połączenia. Ten pomiar obejmuje jedynie opóźnienie buforowania wzdłuż łącza, a nie opóźnienie propagacji (prędkość czasu światła odległości) ani opóźnienie routingu (routery czasowe spędzają ustalenie, gdzie przekazać pakiet). Robi to, zawsze porównując wszystkie pomiary z pomiarem wyjściowym, aby anulować wszelkie ustalone opóźnienie. Koncentrując się na zmiennym opóźnieniu wzdłuż linku, wykryje to konkretnie punkty, w których może wystąpić zator, ponieważ punkty te będą miały bufory.
Opóźnienie linku zwrotnego nie jest wyraźnie uwzględnione w pomiarze opóźnienia. Wynika to z faktu, że w aplikacji peer-to-peer drugi koniec może być również podłączony za pomocą modemu, z tymi samymi ograniczeniami bufora wysyłania, jak zakładamy dla strony wysyłania. Drugi koniec pełny kolejki wysyłania nie wskazuje na zatory na ścieżce idą w drugą stronę.
Aby zmierzyć jeden sposób opóźnień dla pakietów, nie możemy polegać na synchronizacji zegarów, zwłaszcza nie na poziomie mikrosekundowym. Zamiast tego rzeczywisty czas potrzebny na dotarcie do miejsca docelowego nie jest mierzona, tylko zmiany czasu tranzytu są mierzone.
Każdy wysyłany pakiet zawiera znaczek czasowy bieżącego czasu, w mikrosekundach, maszyny wysyłającej. Maszyna odbierająca oblicza różnicę między własnym znacznikiem czasu a tą w pakiecie i wysyła to z powrotem w ACK. Ta różnica, ponieważ jest w mikrosekundach, będzie zasadniczo losową 32 -bitową liczbą. Różnica pozostanie jednak nieco podobna z czasem. Wszelkie zmiany w tej różnicy wskazują, że pakiety przechodzą szybciej lub wolniej.
Aby zmierzyć opóźnienie buforowania jednokierunkowego, ustalono podstawowe opóźnienie. Opóźnienie podstawowe jest najniższą jakkolwiek widoczną wartością różnicy znaczków czasowych. Każda próbka opóźnienia, którą otrzymujemy, jest porównywana z opóźnieniem podstawowym, a opóźnienie jest różnicą.
To jest opóźnienie, które jest przekazywane do kontrolera zatorów.
Histogram typowych pomiarów opóźnienia jest pokazany po prawej stronie. Jest to z przeniesienia między połączeniem modemu kablowego a połączeniem DSL.
Szczegóły pomiarów opóźnienia są nieco bardziej skomplikowane, ponieważ wartości muszą być w stanie owinąć (przekroczyć granicę 2^32 i zacząć od 0).
Discovery Path MTU
MTU jest skrót Maksymalna jednostka transferowa i opisuje największy rozmiar pakietu, który można wysłać za link. Wszelkie datagramy, które rozmiar przekracza ten limit, będą albo fragmentowane lub upuścił. Fragmentowany datagram oznacza, że ładunek jest podzielony na wiele pakietów, każdy z własnym nagłówkiem pakietu.
Istnieje kilka powodów, aby uniknąć wysyłania datagramów, które są rozdrobnione:
- Fragmentowany datagram jest częściej utracony. Jeśli jakikolwiek fragment zostanie utracony, cały datagram jest upuszczony.
- Przepustowość prawdopodobnie zostanie zmarnowana. Jeśli rozmiar DataGram nie jest podzielony przez MTU, ostatni pakiet nie będzie zawierał tyle ładunku, jak to możliwe, a współczynnik ładunku do nagłówka protokołu maleje.
- Fragmenty datagramów jest drogie. Niewiele routerów jest zoptymalizowanych do obsługi dużej liczby rozdrobnionych pakietów. Datagramy, które muszą fragmentować, mogą być znacznie opóźnione i przyczyniają się do użycia większej liczby procesorów na routerach. Zazwyczaj fragmentacja (i inne zaawansowane funkcje IP) są zaimplementowane w oprogramowaniu (powolnym), a nie sprzęt (szybki).
Ścieżka MTU jest najniższym MTU dowolnego linku wzdłuż ścieżki z dwóch punktów końcowych w Internecie. Wąskie gardło MTU niekoniecznie jest w jednym z punktów końcowych, ale może być w dowolnym miejscu.
Najczęstszym MTU to 1500 bajtów, czyli największy rozmiar pakietu dla sieci Ethernet. Wiele domowych połączeń DSL, jednak tunel IP za pośrednictwem PPPoE (protokół punktu do punktu nad Ethernetem. Tak, to jest stary protokół modemu dial-up). Ten protokół zużywa 8 bajtów na pakiet dla własnego nagłówka.
Jeśli użytkownik jest w połączeniu internetowym nad VPN, doda kolejną warstwę z własnymi nagłówkami pakietów.
W skrócie; Jeśli wybierzesz największy możliwy rozmiar pakietu w sieci Ethernet, 1472 i trzymaj się tego, prawdopodobnie wygenerujesz fragmenty wielu połączeń. Fragmenty, które zostaną stworzone.
Drugie podejście do wyboru bardzo konserwatywnego rozmiaru pakietu, które jest mało prawdopodobne, aby się rozdrobnić, ma następujące wady:
- Ludzie na dobrych, normalnych sieciach będą karane małym rozmiarem pakietu. Oba pod względem obciążenia routera, ale także odpady przepustowości.
- Routery oprogramowania zazwyczaj nie są ograniczone liczbą bajtów, które mogą kierować, ale liczba pakietów. Małe pakiety oznaczają ich więcej i więcej ładowania routerów oprogramowania.
Rozwiązaniem problemu znalezienia optymalnego rozmiaru pakietu jest dynamiczne dostosowanie rozmiaru pakietu i wyszukiwanie największego rozmiaru, który może przejść bez fragmentacji ścieżki.
Aby to pomóc, możesz ustawić bit DF (nie fragmentu) w swoich datagramach. To prosi routery, które inaczej fragmują pakiety, aby je upuścić, i odesłać wiadomość ICMP zgłaszającą MTU linku, którego pakiet nie byłby. Dzięki temu przesłaniu bardzo łatwo jest odkryć ścieżkę MTU. Po prostu zaznaczasz swoje pakiety, aby nie być rozdrobnione, i zmieniają rozmiar pakietu za każdym razem, gdy otrzymasz komunikat pakietu ICMP.
Niestety nie jest to takie proste. Istnieje znaczna liczba zapór ogniowych w dzikim blokowaniu wszystkich wiadomości ICMP. Oznacza to, że nie możemy na nich polegać, musimy również zgadnąć, że pakiet został upuszczony ze względu na jego rozmiar. Odbywa się to tylko przez oznaczenie niektórych pakietów za pomocą DF, a jeśli wszystkie inne pakiety przechodzą, z wyjątkiem sond MTU, wiemy, że musimy obniżyć rozmiary pakietów.
Jeśli skonfigurujemy granice ścieżki MTU (powiedzmy minimum internetowe MTU, 576 i Ethernet 1500), możemy przeprowadzić binarne wyszukiwanie MTU. To pozwoliłoby nam to znaleźć w kilku podróży w obie strony.
Ponadto Libtorrent ma optymalizację, w której wymyśli, który interfejs zostanie wysłany połączenie UTP, i zainicjuje sufit MTU do MTU tego interfejsu. Oznacza to, że tunel VPN reklamowałby swój MTU jako niższy, a połączenie UTP natychmiast wiedziałoby o wysyłaniu mniejszych pakietów, nie wymaga wyszukiwania. Ma również efekt uboczny możliwości używania znacznie większych rozmiarów pakietów do interfejsów innych niż Ethernet lub linków Ethernet z ramkami Jumbo.
Drift zegara
Drift zegara to zegary postępujące w różnych tempie. Różni się od skośnego zegara, co oznacza zegary ustawione na różne wartości (ale które mogą postępować w tej samej prędkości).
Każdy dryf zegara między dwiema maszynami zaangażowanymi w transfer UTP spowoduje systematycznie zawyżone lub deflowane pomiary opóźnienia.
Można to rozwiązać, pozwalając opóźnieniu podstawowe być najniższą postrzeganą próbką w ostatnim N minuty. Jest to kompromis między tym, że pojedynczy pakiet przechodzi prosto przez kolejkę, bez opóźnienia, a ilością dryfu zegara można przyjąć na normalnych komputerach.
Okazuje się, że dość bezpieczne jest założenie, że jedna z twoich pakietów faktycznie przejdzie prosto bez znacznego opóźnienia, raz na około 20 minut. . 17 ms jest dość znaczące, zwłaszcza jeśli opóźnienie docelowe wynosi 25 ms (jak w specyfikacji Ledbat).
Zegary postępują w różnych szybkościach w zależności od temperatury. Oznacza to, że komputery działające gorące mogą mieć dryf zegara w porównaniu do komputerów z chłodnymi.
Tak więc, aktualizując bazę opóźnienia okresowo na podstawie najniższej postrzeganej próbki, albo skończysz ją w górę (sztucznie sprawiając, że próbki opóźnienia wydają się małe) bez faktycznego zmiany zatoru lub opóźnienia, albo skończysz ze znacznym dryfem zegara i będziesz mieć z tego powodu sztucznie niskie próbki.
Rozwiązanie tego problemu opiera się na fakcie, że dryf zegara jest tylko problemem dla jednej z stron połączenia. Tylko wtedy, gdy pomiary opóźnienia stale rosną, jest to problem. Jeśli pomiary opóźnienia będą się zmniejszać, próbki po prostu zepchną podstawę opóźnienia wraz z nią. Mając to na uwadze, możemy po prostu śledzić pomiary opóźnienia drugiego końca, zastosując do niego tę samą logikę. Ilekroć podstawowe opóźnienie drugiego końca jest dostosowywane w dół, dostosowujemy nasze podstawowe opóźnienie w górę o tę samą kwotę.
To dokładnie zaktualizuje opóźnienie podstawowe o dryf zegara i poprawi pomiary opóźnienia. Rycina po prawej pokazuje bezwzględne różnice znaczników czasu wraz z opóźnieniem podstawowym. Nachylenie pomiarów jest spowodowane dryfem zegara.
Aby uzyskać więcej informacji na temat kompensacji dryfu zegara, zobacz slajdy z prezentacji BitTorrent w IPTPS10.
cechy
Implementacja UTP LibTorrent obejmuje następujące funkcje:
- Discovery Path MTU, w tym ramy Jumbo i wykrywanie ograniczonych tuneli MTU. Binarne rozmiary pakietów wyszukiwania, aby znaleźć największe niefragmentowane.
- Selektywne ack. Możliwość uznania poszczególnych pakietów w przypadku utraty pakietów
- Szybkie ponowne ponownie. Za pierwszym razem, gdy pakiet zostanie utracony, jest natychmiast urażony. Wyzwalane przez zduplikowane ACKS.
- Algorytm Nagle. Minimalizuj obciążenie protokołu, próbując połączyć pełne pakiety ładunku przed wysłaniem pakietu.
- Opóźnione ACK, aby zminimalizować koszty ogólne protokołu.
- Znacznik czasu rozdzielczości mikrosekundowej.
- Reklamowane okno odbierania, aby obsługiwać ograniczenie szybkości pobierania.
- Prawidłowe obsługa liczb sekwencji owijania.
- Łatwa konfiguracja opóźnienia docelowego, współczynnika wzmocnienia, limitu czasu, opóźnionego na ACK i bufory gniazda.
BitTorrent
BitTorrent to protokół zaprojektowany do przesyłania plików. Ma charakter peer-to-peer, ponieważ użytkownicy łączą się bezpośrednio, aby wysyłać i odbierać części pliku. Istnieje jednak serwer centralny (zwany trackerem), który koordynuje działanie wszystkich takich rówieśników. Tracker zarządza tylko połączeniami, nie ma żadnej wiedzy na temat dystrybucji plików, a zatem duża liczba użytkowników może być obsługiwana ze stosunkowo ograniczoną przepustowością śledzenia.
Niedawnym rozszerzeniem BitTorrent jest protokół DHT („rozproszony niechlujny tabela skrótów” lub po prostu nazywany UDP Tracker). Protokół Peer to Peer to Peer to Peer Tracker. A Utorrent importuje kolejny protokół mikro transportu oparty na UDP o nazwie UTP.
Historia
W kwietniu 2001 r. Bram Cohen zaprojektował protokół Bittorrent, który wdrożył lato 2002. Pierwszym programem korzystającym z protokołu był oryginalny klient BitTorrent. Obecnie dostępnych jest wiele aplikacji, a protokół jest szeroko stosowany.
Zależności protokołu
- TCP: Zazwyczaj BitTorrent używa TCP jako protokołu transportu. Dobrze znany port TCP dla ruchu Bittorrent to 6881-6889 (i 6969 dla portu śledzenia). Rozszerzenie DHT (Peer2Peer Tracker) wykorzystuje różne porty UDP negocjowane przez rówieśników.
Przykład ruchu
Xxx – Dodaj przykładowy ruch tutaj (jako zwykły tekst lub zrzut ekranu Wireshark).
Wireshark
Dessector Bittorrent jest (w pełni funkcjonalny, częściowo funkcjonalny, nie istniejący,… bez względu na obecny stan). Rozszerzenie DHT zostało obsługiwane od R39653. Rozszerzenie UTP zostało obsługiwane od R36716.
Ustawienia preferencji
- Ponowne montaż komunikaty BitTorrent obejmujących wiele segmentów TCP
- Dekoduj peer_id komunikatów uścisku dłoni
Przykład plików przechwytywania
SampleCaptures/BitTorrent.Transfer1.CAP (Microsoft Network Monitor) Oto przechwytywanie z kilkoma pakietami BitTorrent; Zawiera kilka małych pakietów, które otrzymałem podczas pobierania czegoś na BitTorrent.
SampleCaptures/BitTorrent.plik przechwytujący PCAP (libpcap) dwóch klientów Torrent CommunicationG bez wymiany DHT lub Peer.
Filtr wyświetlania
Pełną listę pól filtru BitTorrent można znaleźć w odniesieniu do filtra wyświetlania
Pokaż tylko ruch oparty na BitTorrent:
BitTorrent
Uwaga: zaimplementowany w Post Post 0.10.12!
Filtr przechwytujący
Nie można bezpośrednio filtrować protokołów bittorrent podczas przechwytywania. Jeśli jednak znasz użyty port TCP (patrz wyżej), możesz filtrować na tym.
Uchwyć tylko ruch śledzący BitTorrent na jednym z domyślnych portów (e.G. 6881):
Port TCP 6881
Uchwyć ruch trackera BitTorrent w zakresie domyślnych portów (e.G. 6881-6889):
TCP Portrange 6881-6889
Podczas korzystania z libpcap 0.9.1 lub nowszy lub WinPCap 3.1 lub później; To wyrażenie nie będzie działać ze starszymi wersjami LiBPCAP lub WinPCAP, więc w systemie Windows, aktualizację do WinPCap 3.1 lub później i, na un*x, uaktualnij do libpcap 0.9.x, jeśli to możliwe i, jeśli nie jest to możliwe i masz wersję libpcap przed 0.8.1, użyj
(TCP [0: 2]> = 6881 i TCP [0: 2] = 6881 i TCP [2: 2]
(błąd w optymalizatorze libpcap w libpcap 0.8.x oznacza, że to nie zadziała z libpcap 0.8.x, chociaż możesz być w stanie użyć TCPDump z flagą „-O”).
Linki zewnętrzne
- http: // www.BitTorrent.com/ oficjalna strona BitTorrent
- Strona Wikipedia BitTorrent
- Jak Bittorrent działa ogólnie o P2P, BitTorrent i Firewall
- Protokół DHT (BEP 5), rozszerzenie BitTorrent oparte na UDP dla rozproszonych trackerów (numer portu UDP jest negocjowany). Również: link do projektu protokołu DHT (martwy link), Web Archive Copy (2007-12-21) projektu protokołu DHT.
- Podpis protokołu hipisowego Opis podpisów protokołu TCP i UDP, które mogą być użyte do heurystycznej identyfikacji linku do archiwum BitTorrent Protocol
- Więcej o BitTorrent
Czy Utorrent używa TCP lub UDP?
Reddit i jego partnerzy używają plików cookie i podobnych technologii, aby zapewnić lepsze wrażenia.
Akceptując wszystkie pliki cookie, zgadzasz się na korzystanie z plików cookie w celu dostarczania i utrzymywania naszych usług i witryny, poprawy jakości Reddit, personalizowanie treści i reklam Reddit oraz mierz skuteczność reklamy.
Odrzucając nieistotne pliki cookie, Reddit może nadal używać niektórych plików cookie, aby zapewnić właściwą funkcjonalność naszej platformy.
Aby uzyskać więcej informacji, zapoznaj się z naszym powiadomieniem o plikach cookie i naszej polityki prywatności .
Jakie są porty TCP/UDP używane przez aplikacje torrent?
Chcę zablokować ruch w torrentach w mojej sieci, ponieważ wykorzystuje zbyt dużą przepustowość i zakłóciła ruch sieciowy. Jakiej zakresu portów powinienem użyć i jakiego protokołu TCP lub UDP?
4 824 8 8 złote odznaki 35 35 srebrnych odznak 61 61 Brązowe odznaki
zapytał 9 kwietnia 2013 o 0:26
361 1 1 Złota odznaka 3 3 srebrne odznaki 5 5 brązowych odznaki
Afaik A BitTorrent Klient zwykle kojarzy numer portu TCP 6881. Jeśli jednak ten port jest z jakiegoś powodu zajęty, klient zamiast tego spróbuje kolejno wyższe porty (6882, 6883 itd. Do limitu 6999). Aby klienci z zewnątrz Bittorrent mogli dotrzeć do tego, muszą być w stanie połączyć się z właściwym portem.
3 października 2013 o 8:04
Jeśli masz kontrolę nad komputerami sieciowymi, możesz spróbować znaleźć skrót aplikacji BitTorrent i zablokować ją lub uruchomić dowolny komputer
12 grudnia 2013 o 12:05
To w ogóle nie dotyczy pytania. OP pyta, jakie porty są używane.
12 grudnia 2013 o 14:57
@Roryalsop, jestem trochę spóźniony, ale ludzie sugerują inne rozwiązania, ponieważ BitTorrent nie ogranicza się do żadnego portu.
18 września 2015 o 4:05
Zablokuj każdy port w/na wszystkich protokołach i uderz zaporę na żądanie.
12 lutego 2017 o 2:27
2 Answers 2
Blokowanie BitTorrent jest trudne i nie można tak naprawdę robić skutecznie za pomocą bloków portów. .
Blokowanie ruchu Bittorrent można wykonać za pomocą zapory o głębokim pakiecie lub zaporze aplikacyjnej, ale wielu klientów BitTorrent popiera szyfrowanie, które sprawia, że DPI jest mniej skuteczne.
Jeśli posiadasz sieć i przepustowość to twój duży problem, najlepiej będzie obsługiwać rozwiązanie monitorowania przepustowości. Kontrola jakości serwisowej (QoS) i czapki przepustowości dla punktów końcowych mogą ograniczyć wpływ, jaki użytkownicy BitTorrent mają na ogólną przepustowość, bez gry dla kotów i myszy, próby zablokowania konkretnego protokołu.
Innym podejściem byłoby zablokowanie rodzajów połączeń, których wymaga BitTorrent. Jako protokół peer-to-peer, rówieśnicy poza siecią muszą się połączyć. Zapora może zakazać przychodzących połączeń z podsiecią użytkownika, jednocześnie zezwalając na ich zamierzone usługi na zewnątrz. IPS może ustalić próg liczby połączeń przychodzących i wychodzących, ponieważ klienci BitTorrent muszą połączyć się z wieloma rówieśnikami (i mieć z nimi wiele rówieśników), aby funkcjonować.
Jeśli troszczą się o legalność współdzielonej treści (lub jeśli planujesz podjąć jakiekolwiek działania przeciwko użytkownikom), wówczas najlepszą obroną jest dobrze napisana zasady dopuszczalnego użytkowania, przedstawiające odpowiedzialność użytkowników za ich działania i zabrania korzystania z oprogramowania do udostępniania plików.
Które porty muszą być dozwolone przez zaporę do nasion torrent za pomocą Transmission-CLI na serwerze bezgłowym?
Samodzielne hostowanie własnego śledzenia za pomocą BitTorrent-Tracker. Otwarty port UDP 6969 na serwerach tracker i nasion. Na co należy pozwolić?
19.8K 47 47 Złote odznaki 179 179 srebrnych odznak 312 312 Brązowe odznaki
zapytał 23 lutego 2022 o 14:35
SUNKNUDSEN SUNKNUDSEN
842 10 10 srebrnych odznak 22 22 brązowe odznaki
1 Odpowiedź 1
Zarówno dla śledzenia, jak i klienta torrent, odpowiedź jest taka sama:
Skonfigurowane porty.
Śledzący tradycyjnie słuchają TCP Port 6969. Mogą słuchać także na innych portach (zarówno TCP, jak i UDP). To zależy od konfiguracji.
BitTorrent technicznie ma dobrze znane porty (TCP 6881-6889). Protokół DHT może używać różnych portów UDP. Protokół UTP może używać różnych portów UDP. W praktyce znów zależy to od konfiguracji.
Jeśli jesteś za bramą NAT, potrzebujesz również przekazywania portów.