Dlaczego dystrybucja losowych fragmentów pliku jest szybsza niż ciągły transfer?


17

Dlaczego mówi się, że BitTorrent jest szybszy, częściowo dlatego, że przesyła losowe fragmenty pliku zamiast transferu od początku do końca w sposób ciągły / liniowy?


EDYCJA: Ale dlaczego muszą być „losowe”? Dlaczego nie bardziej przewidywalny „półciągły” transfer, w którym jeden peer daje pierwszą połowę, a drugi peer drugą połowę? To teoretycznie zmniejszy koszty ogólne.

Odpowiedzi:


6

Jeśli chodzi o edycję, pytanie, dlaczego muszą być losowe: Powiedzmy, że torrenty zostały zmienione, aby pobrać tylko pierwszy blok, którego nie ma jeszcze downloader, co gwarantuje ciągły transfer.

Następnie udostępniam plik 100 MB. 10 osób łączy się i każda pobiera 50 MB, zanim przejdę do trybu offline.

Ci ludzie są wtedy wkręceni, ponieważ wszyscy mają pierwszą połowę pliku, a tylko ja mam drugą połowę. Dopóki nie udostępnię go ponownie, nie mogą ukończyć pobierania.

Zamiast tego, ponieważ bloki są przenoszone w losowej kolejności, tak jak w rzeczywistości, każda z tych 10 osób ma inny zestaw bloków, dzięki czemu mogą handlować między sobą w celu dokończenia pobierania bez konieczności bycia w pobliżu.

Co więcej, ponieważ każdy z nich ma inny zestaw bloków, każdy z nich można pobrać ze wszystkichinnych, aby wypełnić luki w ich kopii. Twoja edycja nawiązywała do pomysłu rozpoczynania od losowego punktu w pliku i pobierania od tego momentu w sposób ciągły, ale zwiększyłoby to nakładanie się kopii z jednego downloadera do następnego (jeśli Alice zacznie na początku pliku, a Bob zacznie na początku 10%, to jest 40% pliku, który mają oba, i tylko 10% unikatowe dla każdego z nich, które mogą handlować bez ponownego łączenia się, aby udostępnić resztę). Pobieranie w losowej kolejności maksymalizuje unikatowość posiadanego zestawu bloków każdego pobierającego, maksymalizując w ten sposób zdolność pobierających do rozpoczęcia handlu między sobą i maksymalizując szanse na skompletowanie kompletnej kopii, jeśli żadne nasiona nie są dostępne.

Pojedyncze ciągłe pobieranie może (lub nie musi, w zależności od warunków) być dla Ciebie lepsze , ale pobieranie w losowej kolejności jest lepsze dla całej sieci.


„losowe zamówienie maksymalizuje unikalność każdego zestawu” - właśnie.
eternalmatt

30

Kluczem jest to, że otrzymujesz plik z kilku źródeł (rówieśników) w tym samym czasie, a nie z jednego źródła.

Jeśli masz plik podzielony na 10 części i pobranie go z 1 serwera zajmuje 100 sekund, teoretycznie możesz pobrać plik z 10 elementów równorzędnych w 10 sekund (plus pewne koszty ogólne), ponieważ każdy element równorzędny może dostarczyć swoją część w ciągu 10 sekund. W praktyce potrwa to dłużej, ponieważ każdy peer nie będzie idealny i prawdopodobnie przekroczysz limit przepustowości (ale masz pomysł).

Ponieważ i tak musisz ponownie złożyć plik, nie musisz pobierać elementów w kolejności. Jeśli więc masz tylko 5 elementów równorzędnych, z których każda dostarcza 2 części, mogą to być losowe części pliku.


Prosty. Jasny. +1
Xavierjazz,

5
„Jeśli 6 mężczyzn może wykopać 6 dołków w ciągu 6 minut, ile czasu zajmie 10 mężczyznom wykopanie 10 dołków?”
Martin

4
@martin zależy od wielkości otworów (wielkości fragmentu) i dostępnego wyposażenia (pasma) :)
maniak zapadkowy

14

Należy powiedzieć, że zależy to całkowicie od danego pliku, liczby elementów równorzędnych i prędkości źródła nie będącego bittorentem.

Nigdy nie pobierzesz szybciej niż maksymalna przepustowość twojego połączenia, a jeśli pobierasz z miejsca o wystarczającej przepustowości, będzie to szybsze niż przy użyciu Bittorrent.

Ponieważ jednak prędkości Internetu stają się coraz szybsze, dochodzimy do punktu, w którym (mniejsze) witryny i hosty nie mogą nadążyć.

Na przykład, kiedy kilka miesięcy temu rozglądałem się za cenami kolokacji w Londynie, byłem cytowany absolutnie okropne ceny za połączenie 5Mb. Gdybym to wziął, dobrze by to służyło większości ludzi.

Jednak na tej samej linii, gdybym miał hostować kilka plików 500 Mb, a wszyscy mieliby linie kablowe (50 Mb) lub szybkie ADSL2 + (24 Mb), można zauważyć, że mój serwer nie byłby w stanie obsłużyć tak dużej prędkości ...

... jednak gdybym zaoferował Ci ten sam plik za pośrednictwem Bittorrenta i byłoby 200 osób, każda dająca zaledwie 30 Kb / s, co równałoby się 5,8 Mb / s (i wiele osób ma znacznie większą prędkość wysyłania niż to!) .... a teraz, gdybym miał uruchomić Bittorrent na moim serwerze i zaoferować ten sam plik, oznaczałoby to, że można pobierać łącznie 10,8 Mb / s - znacznie więcej, niż mógłbym zapewnić przez ten 5 Mb / s mój własny.

Bittorrent jest grą liczbową, musisz mieć wystarczającą liczbę osób przesyłających z wystarczającą przepustowością ... Ze względu na dodatkowe kroki, takie jak sprawdzanie integralności (i fakt, że powinieneś przesłać z powrotem), trudno jest kiedykolwiek pokonać bezpośrednie pobieranie z dobrej strony o wystarczającej przepustowości, ale w przypadku wielu mniejszych witryn - są to genialne lub nawet większe witryny, które chcą po prostu zaoszczędzić pieniądze na rachunku za przepustowość.


nie wspominając, że przepustowość wysyłania i pobierania w standardowych połączeniach kablowych nie jest taka sama (A w ADSL)
maniak ratchet

Dziwna zasada przepustowości colo, brzmi jak dla mnie. Wydaje się, że tutaj w Kolorado większość kolo oferuje połączenia o przepustowości 100 Mb / s i pobiera opłaty miesięcznie według zużycia, a Ty musisz zarządzać własną prędkością połączenia i ograniczać ją, jeśli chcesz obniżyć koszty.
Zan Lynx,

Kolejny komentarz: Wolę pobieranie z Bittorrent, jeśli to możliwe, ze względu na sprawdzanie integralności. Niezwykle bolesne jest zmuszanie do ponownego pobrania całego ISO DVD, ponieważ SHA1 nie pasuje. Bittorrent sprawdza każdy blok, więc jest to tylko niewielka porcja do zastąpienia.
Zan Lynx,

@Zan Lynx - Ouch! Miałem ten problem tylko raz w ciągu ostatnich 5 ish lat ... a wcześniej było to głównie wtedy, gdy miałem złą pamięć cicho psującą rzeczy, rozumiem, ale nie widziałem tego przez wiele lat ... W każdym razie chciałem od jakiegoś czasu szukać kolokacji i hostingu za granicą - Anglia jest bardzo droga za prawie wszystko :(
William Hilsum,

4

Wydaje się, że większość odpowiedzi nie odpowiada na twoje pytanie.

BitTorrent nie jest szybszy.

W rzeczywistości jest wolniejszy z powodu narzutu związanego z łączeniem się z wieloma źródłami.

Prawdziwa różnica w praktyce polega jednak na tym, że pobierasz dane z wielu źródeł, które mogą potencjalnie być szybsze niż to, co może dać strona internetowa. Wiele serwerów WWW jest obciążonych lub w inny sposób ma ograniczoną prędkość, abyś nie wyssał ich na sucho.

Fakt, że BitTorrent przesyła plik w pozornie losowej kolejności, nie ma bezpośredniego wpływu na jego szybkość.

Jeśli chodzi o twoją edycję, elementy nie są losowe! Są one traktowane priorytetowo w oparciu o rzadkość: rzadki element musi stać się rzadszy tak szybko, jak to możliwe, aby nie został utracony, jeśli źródło, które go ma, nagle opuści. Ma to związek z dostępnością, a nie szybkością.


3

Jest to problem z dostępnością. Jeśli musisz pobierać w sposób ciągły, jesteś zależny od osób przechowujących więcej plików niż Ty. Każda osoba, która ma mniej pliku niż Ty, nie będzie mogła wysłać Ci żadnych danych.

Jeśli porcje są dystrybuowane losowo, liczba hostów, z których można pobrać, będzie wyższa, dlatego plik zostanie pobrany szybciej.


1

Torrenty nie zawsze są szybsze, ale kiedy są, jednym z powodów jest entropia sieci. Połączenie o dowolnym czasie trwania (pobieranie dużego pliku) może z czasem ulec pogorszeniu, ponieważ losowe, niekontrolowane czynniki wpływają na transmisję pakietów, takie jak przeciążenie routera i inne problemy między tobą a serwerem. Więcej błędów oznacza więcej retransmisji pakietów, a sytuacja ta z czasem się pogarsza. Torrenty tworzą wiele mniejszych połączeń, na wielu ścieżkach routingu, strategię, która w odpowiednich okolicznościach może zmniejszyć błędy i utracone lub uszkodzone pakiety, i wydaje się być szybsza, zwłaszcza gdy rośnie liczba nasion i elementów równorzędnych.


1

Załóżmy, że wysyłasz dwie osoby do sklepu spożywczego, aby podniosły listę przedmiotów. Dajesz im dokładnie taką samą listę. Jednak jeden z nich musi podnieść przedmioty w dokładnie takiej kolejności, w jakiej pojawiają się na liście. Drugi może odebrać przedmioty w dowolnej kolejności. Jak myślisz, co skończy się jako pierwsze?


Co się stanie, jeśli wszystkie elementy zostaną uporządkowane? (Zdefragmentowany?)
Mateen Ulhaq

Ułożone w jakiej kolejności? W porządku alfabetycznym? Dopóki akurat nie zaaranżowano ich dokładnie tak, jak zaaranżowano supermarket, to nie pomogłoby. Analogicznie „supermarket” to listy bloków różnych podmiotów przesyłających. (Gdyby wszyscy zaczęli od początku, to dwie osoby, które miały po 33% pliku, nie mogły sobie pomóc, ponieważ miałyby dokładnie takie same bloki. Fuj.)
David Schwartz
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.