BitTorrent
Transkript
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
scrape pravidelný dotaz klienta na tracker pro aktualizování statistik swarmu a seznamu
peerů
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...
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
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í ...
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 ...
č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...
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í ...
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...
Č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...