Zastanawiałem się, w jaki sposób elementy pobierane przez klientów torrent są przechowywane i ponownie składane? Czy używają metadanych? Wydaje się, że tak nie jest, ponieważ można je odtwarzać, jeśli są to pliki półformowane? Nie mam pojęcia, jak to się robi? Więc w zasadzie pytam, jak zorganizowane są elementy w pobranym pliku? Czy to tylko od pierwszego do ostatniego, czy też są między nimi przestrzenie buforowe?
bittorrent
Cenoc
źródło
źródło
Odpowiedzi:
Witamy w cudownym świecie Torrentów! Istnieje kilka elementów, które składają się na protokół Bittorrent: masz swój plik legalthing.iso i chcesz go rozdzielić jak największej liczbie osób. Tworzysz więc plik „torrent”, który opisuje legalthing.iso, i rozpowszechniasz plik torrent za pośrednictwem strony internetowej lub w dowolny inny sposób. Plik torrent może albo wskazywać bezpośrednio na twój komputer (i działałbyś jak seed) lub plik torrent może wskazywać na „tracker”, który jest serwerem, który łączy „seed” (użytkownicy z całym legalthing.iso plik już) i „rówieśnicy” (użytkownicy, którzy aktywnie pobierają plik).
Zbliżam się teraz do pytania. Sam plik legalthing.iso jest szyfrowany kryptograficznie, dzięki czemu każda osoba, która czyta plik torrent i zaczyna pobierać legalthing.iso, może sprawdzić każdy element pod kątem skrótu i upewnić się, że nie pobiera fragmentu zmodyfikowanego z oryginału. Elementy, które nie przejdą kontroli skrótu, są odrzucane.
Udawaj, że jesteś komputerem, który pobiera plik, używając Bittorrent. Protokół może działać na dwa sposoby: albo pobierzesz losowe fragmenty pliku, albo najpierw pobierzesz najrzadsze fragmenty pliku. To drugie podejście ma na celu zwiększenie ogólnego „zdrowia” (dostępności) torrenta.
Co jest w aktualnym pliku torrent? Różni się w zależności od klienta, który go użył, ale ogólnie zawiera sekcję „ogłosić”, która jest adresem używanego modułu do śledzenia, oraz dużą, ogromną listę wszystkich elementów pliku, który chcesz pobrać. Każdy kawałek ma jednolity rozmiar (32 kb, 512 kb, 4 mb, naprawdę dowolny rozmiar, jaki lubisz), a każdy kawałek ma skojarzony z nim skrót. Za każdym razem, gdy rówieśnik dostaje kawałek, porównuje skrót dla tego elementu (używając kodu skrótu SHA-1) z skrótem wymienionym w pliku torrent. Tak się składa, że kawałki są dobre.
Ponieważ plik torrent zawiera listę każdego pliku, który pobierasz, za każdym razem, gdy klient pomyślnie pobierze kawałek i go zaszyfruje, zapisuje go we właściwej pozycji na dysku twardym w pliku. Dlatego, jeśli pobierzesz plik 1 GB, klient odłoży pusty blok miejsca na dysku o wielkości 1 GB, aby pomieścić pliki torrent, które będziesz pobierać.
Teraz niektóre odtwarzacze wideo i inne przeglądarki plików mogą radzić sobie z „uszkodzonymi” plikami. oczywiście, częściowo pobrany torrent nie jest uszkodzony, ale brakuje mu elementów, a dla programu takiego jak VLC wygląda po prostu zepsuty. Dzięki temu VLC zrobi wszystko, co w jego mocy, aby odtworzyć wszystkie znalezione dane i dlatego mogą odtwarzać je częściowo pobrane.
Istnieje wiele bardziej skomplikowanych aspektów (Google DHT, buforowanie zapisu torrent, wszystkie te fajne rzeczy), ale to są podstawy działania Bittorrenta.
źródło