BitTorrent

Transkript

BitTorrent
BitTorrent
Vypracoval: Martin Fúsek
16.11.2007
X36MTI
Motivace
●
Chci stahovat, nově vydaný soubor
●
Poskytovatel nemá dostatek prostředku
●
–
Hardware (není až takový problém)
–
Bandwidth
Použít bittorent, ušetření nákladů
Příklad: World of Warcraft
●
9.3 mil platicích užívatelů
●
každé 3 měsíce patch, přidávající nový obsah:
–
100MB až 2GB
–
průměrně 200MB
–
při 1GB = 10EB dat při dni, kdy se aplikuje patch
●
●
●
●
dokud se nestahne a nenainstaluje nejde hrát
doručení všem do 5h potřeba 5Tbit linky
TeliaSonera má pouze OC192 = 10Gbit
=> bittorent
Nomenklatura
●
Torrent
●
Tracker
●
Peer
●
Seeder
●
Leech
●
Scrape
●
Announce
●
Swarm
Pachatelé
●
Zakladatel: Mike Hawk (2001)
●
Bram Cohen, CEO fy. BitTorrent, Inc.
–
Starší verze Open Source
–
Novější bude uzavřena
Bencoding
●
string: <délka v ASCII>:<data>
●
Integer: “i“<ASCII>“e“
●
lists: “l“<bencoded values>“e“
–
●
l4:spam4:eggse = ["spam", "eggs" ]
dictionaries: d<bencoded string><bencoded
element>e
–
d3:cow3:moo4:spam4:eggse = { "cow" => "moo",
"spam" => "eggs" }
.torrent file
●
Bencoding
–
info
●
●
●
●
piece length
pieces string složený z 20-byte SHA1 hash
private
.....
–
announce/announce-list
–
creation date
–
comment
–
created by
.torrent file II
●
●
Jeden soubor na torrent
–
name
–
length
–
md5sum
Více
–
name
–
files
●
●
●
length
md5sum
path
Komunikace tracker<->peer
●
HTTP/HTTPS GET (RFC1738)
●
Bencoding
●
Response:
–
interval
–
complete
–
peers
●
●
●
peer id
Ip
port
Komunikace peer<->peer
Handshake
●
pstrlen délka pstr
●
pstr identifikace protokolu „BitTorrent protocol“
●
reserved
●
●
info_hash hash SHA1 (jenom)info části .torrent
souboru
peer_id 20bajtů
–
„-“<2 písmena určující klienta><4 čísla pro
verzi><random>
Komunikace peer<->peer
Message
●
<length prefix 4B BE><message ID><payload>
–
keep-alive: <len=0000>
–
choke: <len=0001><id=0>
–
unchoke: <len=0001><id=1>
–
interested: <len=0001><id=2>
–
not interested: <len=0001><id=3>
–
bitfield: <len=0001+X><id=5><bitfield>
●
–
které části mam, hned po handshake
have: <len=0005><id=4><piece index>
●
dodatečné oznámení vlastnictví po stahnutí
Komunikace peer<->peer
Message II
–
request:
<len=0013><id=6><index><begin><length>
–
piece:
<len=0009+X><id=7><index><begin><block>
●
–
cancel:
<len=0013><id<=8><index><begin><length>
●
–
data
už ty data nechci
port: <len=0003><id=9><listen-port>
●
port pro DHT
Algoritmy
●
Downloading strategy
–
random
–
rarest first
–
pracuje se na streamování
●
Super Seeding
●
End Game
●
Choking and Optimistic Unchoking
–
●
Tit for tat
Anti-snubbing
Algoritmy II
●
●
DHT
Connection Encryption
–
PHE jen hlavičky, starší
–
MSE/PE
–
RC4
●
●
koresponduje 60–80bitum simetrické šifry
ale rychlé pro CPU
Implementace
●
BitTorrent – python
●
Azureus – Java
●
μTorrent – C++
●
Opera
●
HW – některé routery
Nevýhody
●
Snadno zjistitelný
–
poskytovatelem
–
RIAA atd... přes tracker
●
Pomalý rozjezd
●
ISP zakazují i pro legalní účely, 2x zatěžují FUP
●
Přetěžuje směrovací tabulky
●
Není řešeno vyhledávání
●
Vymírání torrentů
Další doporučené počteníčko
●
http://wiki.theory.org/BitTorrentSpecification

Podobné dokumenty

Úvod Motivační příklad komečního využití Postup uživatele

Úvod Motivační příklad komečního využití Postup uživatele scrape pravidelný dotaz klienta na tracker pro aktualizování statistik swarmu a seznamu peerů

Více

prezentace - DSN - České vysoké učení technické v Praze

prezentace - DSN - České vysoké učení technické v Praze Šifrovací klíč • Šifrovací klíč se odvozuje od autentizačního klíče, ovšem pro každý paket nově. • Délka šifrovacího klíče (mezi 8 až 128 bity) • šifrovací klíč = klíč spoje + náhodné číslo + BD_A...

Více

Snímek 1

Snímek 1 vzdálených serverech standard organizace IETF (Internet Engineering Task Force) pro vzdálenou správu souborů RFC 2518 z února 1999 RFC 4918 z června 2007

Více

Semestrální práce z předmětu X36MTI na téma: Libor Bánovský

Semestrální práce z předmětu X36MTI na téma: Libor Bánovský pieces: string obsahující 20-bytové SHA1 hashovací hodnoty Informace pro single-file: name: jméno souboru length: velikost v bytech md5sum: (volitelně) 32-znakový hexadecimální string odpovídající ...

Více

Nové vysoce výkonné nástroje

Nové vysoce výkonné nástroje spirálový závitník E394 při až dvakrát větší řezné rychlosti než je námi doporučená řezná rychlost pro tento závitník. Kromě toho jsme zkoušeli konkurenční závitník (nejbližší ekvivalent z nabídky ...

Více

české PDF

české PDF videopaměti a 2 pokud je v X serveru. int (*get filled bitmap)(struct bitmap *dest, unsigned char *pattern, int n bytes) Před voláním této funkce jsou vyplněny položky x a y v struct bitmap. Obě mu...

Více

Téma 4: Adresy a adresování v TCP/IP, IP adresy verze 4

Téma 4: Adresy a adresování v TCP/IP, IP adresy verze 4 • pokud se dvě síťová rozhraní nachází ve stejné síti, musí mít jejich IP adresy stejnou síťovou část (network ID) • a naopak různé relativní části (host ID) • pokud se dvě síťová rozhraní nachází ...

Více

Lékárnička – léky

Lékárnička – léky Nepřilnavý obvaz – nepřisychá k ráně (popáleniny, puchýře), v 1 balení je několik samostatně zabalených čtverců gázy, napuštěných např. bílou vaselinou (Grassolind neutral, „mastný tyl“) nebo jodpo...

Více

ČSN ISO 690-2

ČSN ISO 690-2 zúčastňují také vládní i nevládní mezinárodní organizace, s nimiž ISO navázala pracovní styk. ISO úzce spolupracuje s Mezinárodní elektrotechnickou komisí (IEC) ve všech záležitostech normalizace v...

Více