czwartek, 22 września 2011

Torrent co to takiego?

Protokół Bit-torrent został opracowany w 2002 r przez Brama Cohena. Głownym celem twórcy było odciążenia pasma serwera udostępniającego pliki w internecie. Protokół torrent jest
siecią typu P2P "Peer to Peer".




 Jego największą zaletą w prorównaniu do protokołu HTTP, jest podział pasma pomiędzy osoby, które w tym samym czasie pobierają dany plik.
Dzięki temu kopiowanie pliku przebiega głównie pomiędzy komputerami użytkowników, tworzącymi wtedy sieć P2P. Użytkownik, który skopiował fragment pliku, udostępnia go innym użytkownikom. W ten sposób prędkość kopiowania pliku nie jest limitowana możliwościami serwera i jego łącza sieciowego, nawet gdy plik kopiowany jest przez wielu użytkowników naraz.
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.
Macierzysty program do wymiany danych w tej sieci został napisany w języku Python i również nosi nazwę BitTorrent.
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.

Schemat transferu plików:

Schemat peerów

Budowa pliku .torrent:

  •  announce – ta informacja zawiera adres url do trackera na jakim został uruchomiony dany torrent,
  •  comment – najczęściej notka od uploadera (osoby tworzącej torrent) lub reklama serwisu z jakiego został pobrany plik,
  •  creationdate – jak sama nazwa wskazuje informacja ta zawiera datę utworzenia pliku torrent,
  •  encoding – informuje klienta o kodowaniu plików w jakim został utworzony plik .torrent,
  •  createdby – informacja dodatkowa, informuje o programie jakim stworzono torrenta,
  •  private – flaga informująca czy klient bittorrenta może załączyć wymianę peerów oraz DHT,
  •  annuonce-list – jest to lista trackerów oddzielonych pustą linią (tzw. multitracker). 
  •  piece length – rozmiar kawałka. Plik, który zostaje rozpowszechniany poprzez bittorrenta jest dzielony na małe kawałki (tzw. chunki) by już po pobraniu jednego kawałka móc dzielić się danymi z innymi użytkownikami.


Według mnie najciekawszym i najszybszym klientem sieci bittorrent jest program uTorrent.