Przegląd protokołu komunikatów równorzędnych .
Klient może używać dwóch protokołów do udostępniania informacji równorzędnym, TCP lub uTP (przez UDP). Te dane są zgodne ze specyfikacją protokołu bittorrent , komunikatami sekcji równorzędnych .
Tak więc programowo połączenie musi rozpocząć się między dwoma klientami. Po ustanowieniu połączenia (przez TCP lub uTP) klient inicjuje bittorrent handshake, który pobiera informacje zdalnego partnera (ip i port) z modułu śledzącego lub przez DHT . Ten uścisk dłoni zawiera info_hash, który identyfikuje torrent, o którym będzie to połączenie.
Zobaczmy najpierw, jak dane Torrent są obcinane przez protokół. Kawałek jest częścią danych dzielisz przez sieć. Nie mylić z blokiem , który jest fragmentem kawałka owiniętego w paczkę. Blok jest ziarnistość podzielić się kawałek za pośrednictwem pakietów, a kawałek jest ziarnistość dzielić Torrent przez rówieśników.
Kiedy połączenie się rozpoczyna, obaj klienci (klient lokalny, który nazywam LC i klient zdalny, RC ) są zdławieni i niezainteresowani . Zadławienie oznacza „Nie będę odpowiadać na żadne wiadomości, zbyt zajęty, ale mogę je wziąć pod uwagę”. Odblokowany oznacza zatem „ Odpowiem na twoje wiadomości”. Zainteresowane oznacza oczywiście, że chciałbym, żebyś miał jakieś kawałki, które masz. Dlatego stan połączenia między dwoma peerami można zdefiniować za pomocą tych czterech stanów: LC_chocked ?, LC_interested ?, RC_chocked ?, RC_interested? Ostrzegam RC , że jestem (nie) zadławiony lub (nie) zainteresowany, Muszę wysyłać mu (nie) zainteresowane i (nie) zadławione wiadomości oraz wzajemnie.
Aby poinformować się nawzajem, które elementy mają, mogą wysłać wiadomość o polu bitowym tuż po uzgadnianiu. Jak sama nazwa wskazuje, jest to ciąg bitów, w którym każdy bit jest ustawiony, 1
jeśli klient ma ten szczególny kawałek , w 0
przeciwnym razie.
Więc jeśli LC jest chocked i zainteresowany i RC ma unchocked go, to może on wysłać żądania wiadomości z prośbą o bloku należącego do jednego kawałka on wie LC ma dzięki bitfield wiadomości.
Gdy peer otrzyma cały kawałek , może wysłać wiadomość o kawałku, aby poinformować wszystkich jego zdalnych partnerów, aby zaktualizowali powiązane pole bitowe , które przechowują.
Jest to bardzo prosty przegląd i oczywiście nie wszystkie szczegóły są tutaj podane, takie jak algorytm dławienia itp. Jeśli chcesz więcej szczegółów, sprawdź dwa linki, które zamieściłem powyżej, w sekcji komentarzy (jako nowy użytkownik mogę mają więcej niż dwa linki w poście).