Sieć Torrent

Dział ten zawiera wszystkie podstawowe informacje dotyczące ogólnej zasady działania architektury P2P, a w dalszej części dotyczy samej sieci BitTorrent. Wyjaśnienie zostały podstawowe zwroty i pojęcia stosowanych przy korzystaniu z serwisów torrentowych oraz klientów sieci BitTorrent.

Czym jest P2P?

1. Ogólnie o Peer-To-Peer....
Na początek pragnołbym skupić się na tym czym jest sieć P2P. Z angileksiego skrót ten oznacza tyle co peer-to-peer czyli każdy-z-każdym jest to model komunikacji w sieci komputerowej które gwarantuje obu stroną równorzędne prawa w odróżnieniu od modelu klient-serwer. To znaczy, że możemy nie tylko odbierać dane ale jednocześnie wysyłać je drugiej stronie. W sieciach P2P, każdy komputer może jednocześnie pełnić zarówno funkcję klienta, jak i serwera. W najpopularniejszej implementacji modelu P2P, jaką są programy do wymiany plików w Internecie każdy węzeł sieci (czyli komputer użytkownika) odgrywa rolę serwera przyjmując połączenia od innych użytkowników danej sieci, jak i klienta, łącząc się i pobierając dane z innych maszyn działających w tej samej sieci. Wymiana danych jest zawsze prowadzona bez pośrednictwa centralnego serwera. Sieć P2P charakteryzuje się także płynną strukturą, która zmienia się w zależności od tego jakie komputery są w niej aktualnie zalogowane. Technologia P2P największą popularność zdobyła w aplikacjach służących internautom do nielegalnej wymiany plików MP3, takich jak Kazaa. Obecnie Kazaa coraz częście przez użytkowników internetu zastępowana jest innymi programami również bazującymi na architekturze P2P takimi jak BearShare , LimeWire, DC ++ , oraz własnie klientami sieci Torrent na której skupiamy się w tym dziale. Jednym z głównych przodowników sieci P2P był program o nazwie Napster. Program ten wykorzystywał centralny serwer, na którym gromadził informacje o zbiorach udostępnianych przez użytkowników.

2. IRC najprosztsze p2p...

Najprostszym w budowie systemem P2P jest P2P oparte o IRC (sam IRC nie jest zbudowany jako P2P). Na specjalnym kanale znajdują się boty posiadające pliki. Można wejść na kanał i zadać zapytania, zwykle w formie !find szukany_plik lub podobnej. Boty posiadające plik pasujący do opisu drukują ich listę na kanał lub częściej w prywatnej rozmowie z szukającym. Wtedy szukający prosi o plik pisząc na kanale lub w bezpośredniej rozmowie żądanie w formie !nazwa_bota ścieżka_pliku lub podobnej. Żądania są ustawiane w kolejce i kiedy przyjdzie czas wysyłane za pomocą DCC. Niektóre boty pozwalają też na logowanie się na nich przez DCC CHAT, upodobniając się trochę do serwerów FTP. Ostatecznie jednak plik jest wysyłany przez DCC.

DCC ma możliwość kontynuacji przerwanego ściągnięcia. P2P bez tej możliwości należą już do przeszłości. Zresztą dotyczy to nie tylko P2P - serwery HTTP nie posiadające tej zdolności spotyka się coraz rzadziej.

Oczywistą wadą jest to, że o wiele łatwiej jest ściągać niż udostępniać. Metoda ta nie jest też zbyt skalowalna - zwykle na kanale udostępnia jedynie kilkanaście góra kilkadziesiąt botów. Kanały są jednak tematyczne, więc ogół dostępnych zasobów może być całkiem duży. Kanały takie istnieją zarówno na ogólnych serwerach IRC jak i na serwerach istniejących specjalnie w celu wymiany plików.

Do zalet należy m.in. automatyczne udostępnienie dobrego chata (którym jest sam IRC), rozpowszechnienie programów do ściągania oraz to że wiele serwerów NAT (szczególnie serwery linuksowe) potrafi analizować DCC i umożliwia tym samym odbierania połączeń DCC wszystkich komputerom w podsieci.

3. Gnutella nowy wymiar P2P....

Systemem który przyjął zupełnie inną postać była Gnutella. W Gnutelli nie ma w ogóle centralnych serwerów. Żeby połączyć się z Gnutellą należy zainstalować odpowiednie oprogramowanie i znaleźć dowolny host należący do sieci. Jeśli host nie ma wolnych miejsc, podaje adresy następnych hostów, do których można próbować się połączyć. W końcu znajduje się hosta chętnego do nawiązania połączenia. Program zachowuje listę wszystkich napotkanych hostów w sieci, dzięki czemu łatwiej będzie się podłączyć następnym razem.

Każde wyszukiwanie jest wysyłane do hostów, z którymi ma się bezpośrednie połączenie. One natomiast przesyłają je dalej. Ewentualne rezultaty wysyłane są bezpośrednio do inicjatora, podobnie sam transfer odbywa się bez pośredników.

Gnutella bardzo słabo się skaluje. Ponieważ każdy host otrzymuje wszystkie wyszukiwania, szybko zaczynają one zajmować całe łącze. Ograniczenie ilości skoków które maksymalnie wykonuje wyszukiwanie, wprawdzie ogranicza obciążenie, ale jednocześnie uniemożliwia znalezienie wielu dostępnych przecież zasobów. Proponowano wiele różnych metod polepszenia wyników Gnutelli - takich jak różnicowanie roli hostów zależnie od ich przepustowości, caching wyników wyszukiwań czy automatyczne modyfikacje topologii, która polepszałaby pewne właściwości sieci. Umożliwiło to znaczną poprawę skalowalności w nowych sieciach tego typu takich jak EDonkey czy FastTrack (z której korzysta Kazaa).

4. Edonkey - popularnu Osiołek ...

Sieć eDonkey z punktu widzenia użytkownika jest podobna do sieci FastTrack. Wymieniać można w niej pliki dowolnego typu. Do skorzystania z sieci wymagane jest posiadanie programu klienckiego. Istnieje wiele klientów sieci eDonkey, najbardziej znanymi są eDonkey2000, eMule i klony (xMule, aMule), MLDonkey.

Użytkownik sieci eDonkey podłącza się do jednego z serwerów sieci. Serwery odpowiedzialne są za indeksowanie i wyszukiwanie plików posiadanych przez klientów. Serwery łączą się ze sobą, dzięki czemu możliwe jest przeszukanie całej sieci z dowolnego serwera. Każdy klient posiada kolejkę, w której na możliwość ściągnięcia pliku mogą czekać inni klienci. Pozycja w kolejce uzależniona jest od stosunku uploadu do downloadu czekającego oraz priorytetu żądanego pliku. Ściąganie rozpoczyna się po osiągnięciu pierwszego miejsca w kolejce. Pobieranie odbywa się porcjami wielkości 9 MB. Możliwe jest pobieranie różnych porcji pliku od różnych klientów. Ponadto każda z porcji pliku jest osobno haszowana, co uniemożliwia ściągnięcie pliku w uszkodzonym stanie.

Zaletą sieci eDonkey jest bezbłędny transfer plików oraz uniemożliwiające oszustwa lokalne przeliczanie stosunków uploadu do downloadu. Wadą jest konieczność długiego czekania w kolejkach przed rozpoczęciem ściągania mniej popularnych plików.

5. DC ++

Direct Connect zamiast na małych specjalistycznych serwerach opiera się na niewielkich serwerach (tzw. hubach) udostępniających jedynie prostego czata i pośredniczących w przekazywaniu wyników wyszukiwania. Hub sam nie posiada indeksu.

Najważniejsza w Direct Connect okazała się nie sama technologia przesyłu plików, a technologia umożliwiająca kontrolę przestrzegania zasad.

Żeby wejść na huba należy udostępniać daną minimalną ilość zasobów związanych z tematem huba. Czasem jest to jedynie 500 megabajtów, czasem 100 gigabajtów, typowe są wartości z przedziału 2-10 gigabajtów. Należy też udostępniać odpowiednią minimalną liczbę slotów, czyli limit użytkowników którzy mogą jednocześnie ściągać, zwykle jest to 2 lub 3 dla połączeń ISDN/SDI, oraz spełnić wszystkie inne konieczne warunki, które ustala administrator huba. Przestrzegania zasad pilnują operatorzy huba, dzięki czemu unika się leecherów - użytkowników, którzy jedynie wykorzystują innych nic w zamian nie udostępniając. Za nieprzestrzeganie grozi kick (wyrzucenie, kopniak), ban na określony czas lub ban bezterminowy.

Direct Connect obsługuje dwa tryby:

aktywny (gdy można użytkownika wywołać po konkretnym zazwyczaj publicznym IP wraz z numerem portu),

pasywny (zwykle oznacza użytkownika w sieci za firewallem lub ruterem NAT bez przekierowania portu).

Dwóch pasywnych użytkowników nie może (z przyczyn technicznych) ściągać od siebie nawzajem, wyniki wyszukiwania są odpowiednio filtrowane tak, żeby pasywni wyszukiwacze widzieli tylko aktywne wyniki. Wystarczy jednak przekierowanie jednego dowolnego portu, żeby można było łączyć się w trybie aktywnym.

Zwykły klient Direct Connect ma małe możliwości techniczne. Jednak dla systemów windows i linux powstało wiele modyfikacji podstawowego klienta.

 

Historia P2P

Koniec lat 60 - tych XX wieku

Przodek Internetu sieć ARPANET - tworzony jest w oparciu na systemie peer to peer.

Rok 1984

-IBM wprowadza termin peer to peer.

Rok 1999

-Shawn Fanning tworzy Napstera - pierwszą sieć do wymiany plików,

-Filmy "Matrix" i "Gwiezdne Wojny - Mroczne widmo" są dostępne w Internecie jeszcze przed ich oficjalną premierą: podobny szum wywołała udostępnienie w sieci w 2001 roku przedpremierowych nagrań Madonny,

Rok 2000

-Do sądu trafia pozew przeciw Napsterowi; przeciwko uczelniom, których studenci uczestniczą w wymianie nagrań, występują też prawnicy reprezentujący Metalikę i Dr Dre,

-W marcu startuje Gnutella, czyli pozbawiony centralnego serwera, a więc "sądoodporny" konkurent Napstera,

-Decyzją sądu centralny serwer Napstera zostaje wyłączony i Napster musi zapłacić wytwórniom płytowym 26 milionów dolarów odszkodowania ; wkrótce w podobny sposób zniszczone zostają Morpheus i Audiogalaxy.

Rok 2002

-
Amerykańskie wytwornie bezskutecznie chcą uzyskać prawo bezkarnego włamywania się do komputerów osób wymieniających dane.

Rok 2003

-
Napster rusza ponownie, juz jako serwis płatny,

-Kwiecień - amerykański sąd badający sprawę Grokstera i Morpheusa rozstrzyga, że firmy zarządzające sieciami P2P nie odpowiadają za działanie użytkowników,

-W czerwcu - amerykańska agencja obrony praw autorskich wysyła pozwy sądowe do namierzonych użytkowników

sieci P2P,

Rok 2004

-
Sierpień - amerykański Sąd Apelacyjny w San Francisco potwierdza, że sieci P2P są legalne,

-We wrześniu w USA pojawia się propozycja ustawy, w myśl której za udostępnianie plików objętych prawami autorskimi można nawet trafić do więzienia

-Powstaje polska sieć wymiany plików peer to peer "GoD"

Rok 2005 - ...

-Organizacje RIAA i MPAA broniące praw autorskich walczą i z sieciami wymiany plików i składają pozwy przeciwko osobom prywatnym ...

-Zamykane są strony z linkami do sieci peer to peer, w ich miejsce powstają nowe

-Sieci P2P dalej istnieją,informacje na podstawie artykułu zawartego w magazynie Chip...

O sieci BitTorrent

Czym jest BitTorrent?

Jest to protokół wymiany i dystrybucji plików przez internet, którego celem jest odciążenie łączy serwera udostępniającego pliki. Jego najwiekszą zaletą w prorównaniu do protokołu HTTP, jest podział pasma pomiędzy osoby, które w tym samym czasie pobierają dany plik. Oznacza to, że użytkownik w czasie pobierania wysyła fragmenty pliku innym użytkownikom. System jest zintegrowany ze stroną WWW serwera a sam proces pobierania od strony użytkownika jest zbliżony do transmisji pliku za pośrednictwem protokołu HTTP. Od strony serwera system składa się z udostępnionych publicznie metaplików o rozszerzeniu .torrent, trackera oraz programu wysyłającego pliki. Protokół i oprogramowanie zostało stworzone przez amerykańskiego programistę Brama Cohena w 2002 roku i w tym samym roku zaprezentowane na zlocie programistów o nazwie CodeCon w San Francisco. Macierzysty program do wymiany danych w tej sieci został napisany w języku Python i również nosi nazwę BitTorrent.

BitTorrent umożliwia wielu osobom ściąganie tego samego pliku bez ograniczania pasma serwera udostępniającego plik, ponieważ w tym samym czasie nawiązana zostaje komunikacja pomiędzy użytkownikami i wymiana fragmentów pliku pomiędzy nimi. Wysyłając fragmenty pobieranego aktualnie pliku do innych użytkowników, tworzymy z nimi sieć opartą na zasadach P2P. W ten sposób prędkość ściągania danych każdego użytkownika jest sumą predkości wysyłania innych. Procedura rozpoczyna się od pobrania ze strony WWW metapliku o rozszerzeniu .torrent zawierającego, między innymi, informacje o zawartości, adresie trackera i sumach kontrolnych poszczególnych plików przesyłanych przez sieć. Następnie, klient sieci łączy się z trackerem otrzymując od niego informacje o pozostałych użytkownikach oraz periodycznie utrzymuje z nim kontakt w celu aktualizacji. Od tej chwili zaczyna się już właściwy proces pobierania pliku.

Podstawowe pojęcia

Jak działa sieć BitTorrent?

Działanie sieci BitTorrent oparte jest o architekture peer-to-peer, wymiana plików zachodzi więc na zasadzie
każdy z każdym. To znaczy, że zarówno pobieramy plik jak i pobraną część pliku jednocześnie udostępniamy
innym osobą. Udostępnianie pobranego pliku jest niezmiernie ważne gdyż pozwala na jego pobranie innym osobom,
i zapewnia żywotność sieci, bo gdyby nikt nie udostępniał tego co pobiera istnienie sieci BitTorrent byłoby niemożliwe,
jak zresztą każdej innej sieci P2P.
W przypadku działania sieci BitTorrent dużą rolę odgrywają pojęcia takie jak:

1. TRACKER

Jest to komputer (serwer) będączy nadzorcą działania scieci BitTorrent, czuwa niejako nad całym procesem wymiany plików,
podłanczają się do niego poszczególne klienty ( programy które umozliwiaja nam wymianę plików) i ma on za zadanie między innymi przekazywać dane tj. adresy IP pomiędzy osobami pobierajacymi plik. Sprawność jego działania poniekąd wpływa na
szybkość z jaką możemy współdzielić pliki. Jego obecność jest konieczna do nawiązania połączenia z inną osobą i możliwości pobrania od tejże osoby jakiegokolwiek pliku.

2. Hash

to 160-bitowa wartość zakodowana algorytmem SHA1 i zapisana w metapliku .torrent. Służy do identyfikacji przez trackera pliku .torrent oraz użytkowników ściagajacych te same dane.
Przykładowo: 0E3C21880ABC7240AE766FF4E675D769037EE544

3. Torrent

.torrent to metaplik z informacjami niezbędnymi do rozpoczęcia procesu pobierania pliku. Gromadzone są one w różnych serwisach internetowych, wyszukiwarkach. Skąd za pośrednictwem tych stron internetowych możemy je pobrać. Następnie klikając na taki plik o roższeżeniu .torrent otwiera się nam klient który wykorzystując informacje zawarte w tymże pliczku łączy nasz z Trackerem i rozpoczyna się proces pobierania danych.

4. Klient

Klient sieci BitTorrent to programy których dostępność jest bardzo duża, od prostych do bardzo zaawansowanych i rozbudowanych w funkcje. Służą one nam do pobierania (wymiany pliku) dzięki temu, że potrafią odtrzytać informacje zawarte w pliku .torrent, a następnie połączyć nas z Trackerem, i w daleszej kolejności nawiązać połaczenie z innymi komputerami posiadającymi i udostępniajacymi dany plik. Jednym słowem ujmując pozwalają nam poprostu ściągać cokolwiek z sieci BitTorrent.

5. Download i Upload rate , ratio

Pojęcię download odnosi się do szybkości pobierania pliku, natomiast upload do szybkości z jaką z koleji wysyłamy dany plik

Ratio jest to natomiast stosunek ilości danych pobranych do wysłanych. rzyjmuje się za grzeczność względem innych i pewną normę, aby udostępniać plik minimum do share ratio równego 1.

6. Peers, Seeds, Leechers

Seeds są to osoby udostępniajace kompletny plik niezwykle ważne żeby ich liczba była jak największa wtedy mozemy liczyć na możliwie najszybsze pobranie pliku. Peers to osoby pobierajace i udostępniajace niekompletny plik. Leechers to osoba ssąca nieudostępniajaca pobieranego pliku tak zwana pijawka. Taka postawa na wielu stronach torrentowych grozi wyrzuceniem.