Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

BitTorrent - Technologie

V tomto článku si stručně popíšeme, jak funguje BitTorrent, peer to peer bandwidth saving systém určený k distribuci velkých souborů.

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

Proč

Distribuce velkých souborů přináší několik problémů:

1) Soubor se downloaduje delší dobu a tím pádem je během stahování k serveru současně připojeno více uživatelů.

2) Zdroje serveru je nutné rozdělovat mezi více uživatelů – každý dostane menší díl CPU, paměti a přenosového pásma.

3) Pokud se celý soubor nevejde to cache serveru, je nutné provádět mnoho diskových seek operací – v nejhorším případě jeden seek na každý odeslaný blok, což dále snižuje výkon. Proto jsou zatížené fileservery vybaveny velkým množstvím paměti (obvykle 4 GB a více).

4) Velké soubory spotřebovávají zdroje ostatním službám na serveru.

5) Největším problémem je potřeba velkého přenosového pásma. Nemilé je to zvláště v případě, pokud platíme za přenesené bajty.

BitTorrent se snaží tyto problémy řešit. Je založen na jednoduché myšlence: Uživatelé, kteří si stahují velký soubor, si mohou mezi sebou kopírovat to, co si již stáhli.

BitTorrent pracuje ve třech fázích

Fáze 1: Získání metadat

Metadata jsou uložena v souboru s koncovkou .torrent (application/x-bittorent). Tato metadata najdete na webové stránce spolu s upozorněním na možnost stažení souboru pomocí BT. Je vhodné mít webbrowser nakonfigurován tak, aby podle koncovky nebo MIME typu automaticky spustil BT klienta. Metadata lze získat i jinou cestou (FTP, IRC, Email, …) a pak na ně spustit BT klienta ručně.

Metadata jsou malý binární soubor obsahující údaje o stahovaném souboru: jméno, velikost, datum vytvoření, URL trackeru, velikost bloku, případný komentář a binárně uložené SHA1 checksumy jednotlivých bloků. Soubor metadat pro 690MB CD-ROM image je veliký zhruba 50 kB. Metadata jsou kodována pomocí tzv. bencoding (např. řetězec je uložen jako velikost:řetězec, integer jako ičísloe).

Příklad úvodní textové části .torrent souboru:

d8: announce30: http://localhost:6969/announce7: comment30: NetBSD
1.6.2 for I386 - Disc 213: creation datei1078940925e4: infod6:
lengthi690257920e4: name21: NetBSD-i386-1.6.2.ISO12: piece lengthi262144e6:
pieces52680: 

(pozn. ed.: všechny mezery za dvojtečkami dodány násilím kvůli sazbě –Johanka)

Fáze 2: Hledání ostatních stahujících

Po získání a zpracování metadat začne BT klient hledat ostatní počítače stahující tentýž soubor. K jejich vyhledání slouží služba Tracker. URL této služby je uvedeno v položce announce v .torrent souboru. Existuje neoficiální rozšíření syntaxe ‚announce-list‘, které umožňuje zadat seznam více Trackerů. Pokud je tracker nedostupný, nelze totiž soubor stáhnout.

Tracker je služba používající architekturu klient-server. Tracker komunikuje HTTP protokolem a obvykle běží na portu 6969. Úkolem služby Tracker je udržovat aktualizovaný seznam počítačů stahujících příslušný soubor. Tracker kromě toho shromažduje statistické informace o klientech (počet přenesených dat) a počítá downloady. Jeden Tracker může obsluhovat více .torrent souborů současně. Odhaduje se, že jeden Tracker zvládne okolo 10 000 klientů současně. Většina trackerů poskytuje po připojení web browserem různé doplňkové služby (statistika, chat, možnost hledání a stáhnutí .torrent souborů).

Klienti pravidelně ohlašují Trackeru svůj stav (started, stopped, completed), celkový počet přenesených bajtů (uploaded, downloaded), počet zbývajících bajtů (left). Nejdůležitějšími informacemi předávanými Trackeru jsou 20bajtové peer_id, IP adresa a číslo portu, na které jsou pro ostatní klienty k zastižení. Od Trackeru obdrží BT klient seznam několika ostatních a začne s nimi přímo komunikovat.

Fáze 3: Peer to peer

V peer to peer síti Bit Torrent existují dva typy uzlů: peer a seed. Rozdíl mezi těmito uzly není technický, ale spíše politický. Po technické stránce jsou oba dva naprosto shodné: používají stejný protokol a stejně se Trackeru ohlašují. Jediný rozdíl je ten, že seed vlastní kompletní kopii souboru, zatímco peer nikoliv. Seedem se stává peer uzel automaticky v době, kdy má k dispozici kompletní stahovaný soubor. Pokud je spuštěn BT klient na již downloadovaný soubor, stane se seedem.

Myšlenka peer to peer sítě je založena na vzájemné spolupráci. Peer uzly se navzájem spojují a vyměňují si mezi sebou jednotlivé části souboru, a to nejlépe v poměru 1:1. Ty mně dáš jeden blok, co ještě nemám, a já ti za to dám jeden blok, co ty nemáš. Každý soubor je totiž předem rozdělen na bloky (obvykle 256K), jejichž SHA1 checksumy jsou známé z .torrent souboru.

Každý peer uzel se snaží připojit k rozumné míře (zhruba 10) ostatních uzlů. Po připojení si uzly navzájem vymění seznamy svých bloků. Uzel si tak může vybrat, o který blok požádá. V současné době se používají dvě strategie: náhodný výběr {random} a nejméně se vyskytující (rarest first) blok. Protože peer uzel nechce poskytovat své bloky zadarmo, začne nejprve vyměňovat své bloky za nějaké, které ještě nemá. Teprve potom, co nemá již nic na výměnu, dává semtam nějaké bločky ostatním zdarma, protože doufá, že od nich také něco dostane. Dávání bloků zdarma je nezbytné pro správnou funkci sítě – odstranění dead-lock stavu. Uzel čas od času doluje z Trackeru seznam dalších uzlů.

Peer uzly si také mohou vymýšlet. Aby zvýšily svou šanci na získání bloků, mohou předstírat, že mají více bloků na výměnu než ve skutečnosti. V současné době se používají dvě metody podfuků: buďto se peer uzel na žádost o blok neobtěžuje nic poslat, nebo pošle náhodná data. Většina klientů tyto podfukáře rychle pozná a přestane dále komunikovat. V současné době neexistuje metoda, jak tyto uzly bonznout Trackeru. Při stahování delších souborů (ISO Image) se podvody nevyplácejí, při stahování MP3 to většinou projde, protože než to ostatní zjistí, máte již staženo.

Uzel typu seed je narozdíl od uzlu typu peer velice štědrý. Protože má všechno a nic nepotřebuje, dává zadarmo bločky komukoliv, kdo o ně požádá. Uzel typu seed se s výjimkou Trackeru nikam nespojuje, pouze čeká na příchozí spojení. Aby se zabránilo jejich přetížení, jsou seed uzly omezovány, a to jak počtem připojených peer uzlů, tak objemem přenesených dat za sekundu.

Pro zajištění úspěšného downloadu je žádoucí, aby byl vždy připojen alespoň jeden uzel typu seed. BT technologie umožňuje download i v případě tzv. distribuované kopie – klienti mají rozdílnou sadu bloků, která po složení dá celý soubor.

Seznam doporučovaných URL

wiki.theory.or­g/index.php/Bit­TorrentSpecifi­cation
www.bitconjurer­.org/BitTorren­t/protocol.html

Školení: Pokročilejší kurz jazyka Java

Java je multiplatformní programovací jazyk, který vytvořila a vyvíjí společnost Sun. Java je silný, objektově orientovaný jazyk se širokou komunitou, nabízející především vysokou produktivitu vývoje.

  • Práce s řetězci
  • Regulární výrazy
  • Kolekce
  • Generiky
  • Smyčka typu "for" ve verzi Java 1.5
  • Výčty
  • Vlákna, synchronizace
  • Polymorfismus, RTTI
  • Java Beany
  • JDBC (práce s databázemi)
  • GUI (knihovny AWT a Swing)
  • Java na serveru (servlety, JSP)

Podrobnější informace a přihláška

Ohodnoťte jako ve škole:
Průměrná známka 2,75

Přehled názorů

BT prakticke skusenosti
penclen 7. 4. 2004 00:41
Nový
├ 
Re: BT prakticke skusenosti
samuel 7. 4. 2004 09:40
Nový
│
└ 
Re: BT prakticke skusenosti
Mikiq 13. 1. 2010 20:38
Nový
├ 
Re: BT prakticke skusenosti
simen 7. 4. 2004 14:01
Nový
│
└ 
Re: BT prakticke skusenosti
anonymní uživatel 8. 4. 2004 10:01
Nový
├ 
Re: BT prakticke skusenosti
simen 7. 4. 2004 14:04
Nový
└ 
Re: BT prakticke skusenosti
Dave 7. 4. 2004 17:50
Nový
kde hledat?
lyon 7. 4. 2004 02:25
Nový
├ 
Re: kde hledat?
Ondřej 7. 4. 2004 07:43
Nový
│
└ 
Re: kde hledat?
Brnak 7. 4. 2004 19:51
Nový
│
 
└ 
Re: kde hledat?
Michal 7. 4. 2004 20:53
Nový
│
 
 
└ 
Re: kde hledat?
Brnak 7. 4. 2004 21:42
Nový
│
 
 
 
└ 
Re: kde hledat?
lyon 8. 4. 2004 23:12
Nový
└ 
Re: kde hledat?
anonymní uživatel 7. 4. 2006 09:21
Nový
Super
Digero 7. 4. 2004 09:41
Nový
Problem cislo 3
Jerry III 7. 4. 2004 09:51
Nový
└ 
Re: Problem cislo 3
Solvina 7. 4. 2004 10:39
Nový
Nebezi pres fw/proxy
seth 7. 4. 2004 09:56
Nový
└ 
Re: Nebezi pres fw/proxy
Pajlo 7. 4. 2004 12:05
Nový
 
└ 
Re: Nebezi pres fw/proxy
eldzi 7. 4. 2004 21:11
Nový
Omezení fyzické linky
raxas 7. 4. 2004 14:04
Nový
Fake share a upload/download pomer
MiMiNo 7. 4. 2004 16:14
Nový
├ 
Re: Fake share a upload/download pomer
Geliberd 7. 4. 2004 17:19
Nový
│
└ 
Re: Fake share a upload/download pomer
... 22. 4. 2006 15:42
Nový
├ 
Re: Fake share a upload/download pomer
misof 7. 4. 2004 19:10
Nový
│
├ 
Re: Fake share a upload/download pomer
MiMiNo 7. 4. 2004 19:56
Nový
│
│
├ 
Re: Fake share a upload/download pomer
Michal 7. 4. 2004 20:59
Nový
│
│
└ 
Re: Fake share a upload/download pomer
jojo 27. 7. 2004 01:29
Nový
│
└ 
Re: Fake share a upload/download pomer
Dalibor 24. 1. 2007 23:06
Nový
├ 
Re: Fake share a upload/download pomer
anonymní uživatel 1. 9. 2005 09:02
Nový
├ 
Re: Fake share a upload/download pomer
anonymní uživatel 22. 4. 2006 10:26
Nový
├ 
Re: Fake share a upload/download pomer
anonymní uživatel 7. 2. 2007 20:08
Nový
└ 
Re: Fake share a upload/download pomer
anonymní uživatel 2. 5. 2007 20:39
Nový
!!!! UPOZORNENIE !!!!
f00 8. 4. 2004 09:48
Nový
└ 
Re: !!!! UPOZORNENIE !!!!
MiMiNo 8. 4. 2004 12:55
Nový
 
└ 
Re: !!!! UPOZORNENIE !!!!
Brnak 8. 4. 2004 20:23
Nový
BT
Pavel 8. 4. 2004 21:06
Nový
Porovnani s DC
jarda 10. 4. 2004 20:23
Nový
├ 
Re: Porovnani s DC
stuff 14. 4. 2004 15:06
Nový
│
└ 
Re: Porovnani s DC
kasparek 8. 11. 2004 12:01
Nový
├ 
Re: Porovnani s DC
Yuatja 10. 7. 2005 16:24
Nový
└ 
Re: Porovnani s DC
STRANGER 30. 11. 2005 09:47
Nový
 
└ 
Re: Porovnani s DC
Ondrassek 25. 6. 2006 20:03
Nový
Lara Croft
Alex 14. 4. 2004 15:56
Nový
rychlost?
hata titla 1. 8. 2004 22:45
Nový
└ 
Re: rychlost?
bene 6. 8. 2004 21:54
Nový
Kde najdem tento program
anonymní uživatel 16. 3. 2006 00:08
Nový
pomozte mi prosim
anonymní uživatel 28. 3. 2006 14:46
Nový
└ 
Re: pomozte mi prosim
Harvie 11. 6. 2006 19:13
Nový
ako pustit video
anonymní uživatel 7. 8. 2006 02:37
Nový
├ 
Re: ako pustit video
zedo 21. 9. 2006 21:37
Nový
└ 
Re: ako pustit video
zedo 21. 9. 2006 21:43
Nový
garfild2
zedo 23. 9. 2006 15:11
Nový
jdfigjh
SHARK 16. 10. 2006 20:31
Nový
jak?
nomisterion 24. 3. 2007 15:51
Nový
Česká verze ke stažení
anonymní uživatel 1. 11. 2008 19:51
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem