TesinaBittorrent
APPLICAZIONI E PROTOCOLLI DI SUPPORTO PER LA CONDIVISIONE DEI FILE:LA RETE BIT TORRENT
Ciao ragazzi,prima di presentare questa tesina vorrei presentarmi e dirvi almeno come mi chiamo ed il motivo per cui sto approfondendo questo argomento... intanto il mio nome è Giorgio D'Amario e sono uno studente al 3 anno della facoltà di ingegneria alla sapienza di Roma!il motivo per cui ho deciso di approfondire l'argomento p2p ed i protocolli per la condivisione dei file è semplice: sono semplicemente un sadico di byte sono di quelli che più ne scaricano e più si divertono... mi piacerebbe alla fine di questo apprendimento capirci un po di più di come vengono regolate le trasmissioni di file nella rete che studierò ovvero bittorrent!
ciao a tutti e buona lettura
1 - Introduzione al peer to peer
Per peer to peer si intende una rete informatica o nello specifico,una rete di computer che non hanno un ruolo fisso bensi vengono considerati come nodi(peer)che colloquiano nelle rete con altri computer assumendo il ruolo sia si server che di client.In una rete di questo tipo può avvenire une transazione(scambio d dati).Possono variare le caratteristiche dei singoli nodi come ampiezza di banda di frequenza, dati immagazzinati,velocita di elaborazione.Un esempio di rete p2p per condivisione di file è il file sharing.
1.2 - file sharing
Con esso si intende la condivisione dei file in una rete comune che può avvenire attraverso un sistema client-server o p2p; Le più famose reti p2p sono gnutella,kadu,bittorrent,edonkey(le prime due sono supportate dal software emule). Esse sono però ben differenti rispetto ad alcune reti che rappresentano un file system distribuito. I programmi che supportano reti file sharing sono molti e dipendono soprattutto dal sistema operativo che si utilizza.uno dei problemi di queste applicazioni è il cosiddetto spyware ovvero software(per lo più pubblicitari) che hanno lo scopo di far finire l'utente a siti non desiderati.In rete sono scaricabili programmi open source per la difesa da questo problema come Microsoft Defender e Spybot Search & Destroy.Un'altro problema delle applicazioni file sharing è quello dei virus informatici;esso è un file che puo provocare la cancellazione parziale o totale dell'hard disk.In rete sono disponibili alcuni programmi che individuano ed eliminano questi tipi di file di "disturbo".nell'utilizzo dei software per la condivisione dei file si fa lungo uso di interfacce grafiche in grado di gestire diversi protocolli. Uno dei primi programmi di file di sharing di massa fu napster:esso nacque per condividere i file con formato mp3(musicali)ma non durò tantissimo a causa dei continui attacchi delle case discografiche e quindi diveni illegale poter condividere gratuitamente questo tipo di file.Napster oltre a consentire la ricerca dei file mp3 comprendeva anche un canale di chat IRC instant messenger. Successivamente dopo i problemi legali di napster,nacque un alternativa:gnutella;essa era una rete decentralizzata che permetteva lo scambio e la condivisione di file di molte estensioni non solo mp3 proprio per evitare i rischi corsi da napster.il segreto di gnutella e dei software nati successivamente fu la decentralizzazzione;con essa si evitava il rischio che il blocco un utente causi il blocco in cascata degli altri. Infine tra gnutella e napster si scontrano due modi di condividere file in rete:il primo è un servizio a protocollo aperto e sistema decentralizzato;il secondo era a sistema centralizzato ed ha maggiore velocità.
1.3 -utilizzo presente e futuro
Il termine p2p si riferisce soprattutto alle reti di file di sharing per la condivisione file,come gnutella bittorrent o l'ormai defunto napster.Alcune reti e canali utilizzano il modello client-server per effettuare alcune funzioni come ad esempio la ricerca ed il modello p2p per altre(napster o irc).altri canali svolgono le loro funzioni solo attraverso il p2p. Applicazioni future dei programmi p2p inevitabilmente dovranno sostenere un flusso di dati elevato,riguardante film ed eventi televisivi.Ovviamente questo discorso dipende dalla banda di frequenza a disposizione di un singolo nodo e come viene utilizzata per il download-upload dei bytes.Il metodo di diffusione in tempo reale(streaming)richiede una banda elevata,cosa purtroppo che in Italia ancora non si ha nella maggior perte dei casi,in quanto si fornisce agli utenti una buona banda di ricezione ma una scarsa in trasmissione.è bene notare che nonostante nei sistemi p2p si parli spesso di serve la tecnologia rimane sempre peer to peer con quest'ultimo che fa da sincronizzatore tra gli utilizzatori del servizio.dopo aver instaurato la comunicazione tra 2 nodi(computer)il server si disinteressa completamente di essa che diventa in effetti completamente p2p. Vi sono problemi legati alla protezione di materiale protetto dai diritti d'autore che hanno causato problemi di carattere legale e tecnico di cui qui sotto si danno brevi cenni.
1.4 -cenni sulle controversie legali
I file più condivisi in rete sono quelli di estenzione mp3(musicali) e divx(video),questo ha portato molte case discografiche a sostenere che l'utilizzo di queste reti sarebbe sto una minaccia contro i loro interessi ed il loro piano industriale.Questo portò ad alcune conseguenze come la chiusura di napster.La manifestazione più estrema di questi sforzi risale al gennaio 2003, quando venne introdotto, negli U.S.A., un disegno di legge dal senatore della California Berman nel quale si garantivano, al detentore del copyright, i diritti legali per fermare i computer che distribuivano materiale tutelato dai diritti d'autore. Il disegno di legge venne respinto da una commissione governativa Statunitense nel 2002, ma Berman lo ripropose nella sessione del 2003.Risale, invece, al 2004 la "Legge Urbani" nella quale viene sancita la possibilità di incorrere in sanzioni penali anche per chi fa esclusivamente uso personale di file protetti.Da allora le reti diventarono più incontrallobili tanto che l'obbiettivo delle case discogafiche si spostò nei confronti degli utenti.
1.5 -protezione e privacy
Oltre agli attacchi che una rete aperta puo subire anche chi usufrisce,quindi i computer,di tale puo essere soggetto ai problemi legati alla ptrotezione e alla privacy.I file sharing richiedono come normale la condivisione delle quantità di dati scaricati,che vengono messi a disposizione di altri utenti.questo implica da un lato che si mette a disposizione un area del proprio hard disk dall'altra che si lascia libero accesso ad una porta del proprio computer.Se poi si considera l’enorme incremento degli utenti e l’utilizzo di linee a banda larga, ormai alla portata di tutti, questi problemi, che una volta potevano essere trascurabili, diventano prioritari. Ciò rende fondamentale l’utilizzo di sistemi di difesa come antivirus, firewall, programmi di pulizia dei file di registro e di rimozione degli agenti infettivi: virus, spyware, trojan o malware.Il migliore rimedio rimane tuttavia avere una propria cultura informati,cioè evitare di scaricare file corrotti da altri utenti p2p.
2 -La rete ed il protocollo BitTorrent
2.1 -che cos'è la rete bittorrent?
Immaginiamo di avere un bellissimo prodotto molti clienti e di distribuire online tale ad un numero di clienti felici di scaricarlo.Distribuire tramite server grandi quantita di dati crea enormi problemi di scala, rapidi affollamenti e problemi di affidabilità. Al crescere della notorietà del prodotto crescerà il numero degli utenti interessati a scaricarlo e cresceranno i costi in termini di banda. E' un circolo vizioso.Il protocollo bittorrent ha una soluzione a questo problema.La chiave per rendere più economica e veloce la distribuzione dei file è di utilizzare la capacità di upload dei clienti. E' gratis. Il contributo della loro banda di upload cresce con la domanda e crea una scalabilità senza limiti a costi fissi. BitTorrent è un protocollo peer-to-peer (P2P) che consente la distribuzione e la condivisione di file su Internet. Esiste anche un software che implementa questo protocollo e che si chiama nello stesso modo, ossia BitTorrent. È stato sviluppato da Bram Cohen, un programmatore di San Francisco, e ha debuttato al CodeCon del 2002. Il software è disponibile per i sistemi operativi windows,mac e linux.
2.2 -il linguaggio con cui è scritto
Python è stato progettato in modo da essere altamente leggibile. Visivamente si presenta in modo molto semplice e ha pochi costrutti sintattici rispetto a molti altri linguaggi strutturati come C, Perl o Pascal.
Per esempio, Python ha solo due forme di ciclo -- for, che cicla sugli elementi di una lista o su di un iteratore (come il foreach del Perl); e while, che cicla fin tanto che l'espressione booleana indicata risulta vera. In sostanza manca dei cicli in stile C for, do...while, oppure di un until in stile Perl, ma tutti questi naturalmente possono essere espressi con dei semplici equivalenti. Allo stesso modo ha solamente il costrutto if...elif...else per le scelte condizionate -- niente switch oppure goto.
2.3 -modo di funzionamento
L'obbiettivo di bittorrent a differenza degli altri file sharing,è fornire un sistema efficiente di distribuzione dello stesso file verso il maggior numero di utenti disponibili sia che lo stiano scaricando sia che lo stiano trasmettendo.si tratta di coordinare il lavoro di molti computer al fine di dare beneficio a tutti.
2.4 -i file.torrent
Esso è un file di modeste dimensioni che contiene delle informazioni impornti per avviare la comunicazione tra 2 utenti.Tale file può essere pubblicato semplicemente su un sito web e ci si può accedere anche tramite appositi motori di ricerca di file.torrent.Per poter usufruire del sistema è necessario quindi dover scaricare un file.torrent.Tecnicamente non è altro che un file che contiene delle informazioni di descrizione riguardo i pacchetti del file da scaricare(film,canzoni)codificate tramite un algoritmo di hashing; L'algoritmo di "Hash" elabora qualunque mole di bit e svolge le seguenti funzioni:
1) L'algoritmo restituisce una stringa di numeri e lettere a partire da un qualsiasi flusso di bit di qualsiasi dimensione (può essere un file ma anche una stringa). L'output è detto Digest.
2) La stringa di output è univoca per ogni documento e ne è un'identificatore. Perciò, l'algoritmo è utilizzabile per la firma digitale.
3) L'algoritmo non è invertibile, ossia non è possibile ricostruire il documento originale a partire dalla stringa che viene restituita in output.
Inoltre il file in questione contiene anche l'indirizzo URI,ovvero l'indirizzo applicativo(link) di un server traccia detto traker utilizzato per localizzare le sorgenti dove si trovano i file o le parti di esso.questo trakerè un software che coordina le richieste degli utenti,e li informa su chi possiede questi file e su la disponibilità eventuale di chi li condivide.La lista dei traker viene definita in ogni file torrent;Solitamente, i siti tracker forniscono anche delle statistiche sul numero di trasferimenti, il numero di nodi che hanno completato la copia del file e il numero di nodi che posseggono una copia parziale del file.Grazie a questo sistema ogni peer contribuisce alla diffusione del file in rete.maggiore è l'ampiezza di banda di cui dispone un nodo maggiori sono le probabiltà che un file venga diffuso su altri nodi.Questo metodo consente di diminuire la leech resistance,ovvero quando sono presenti molti utenti che vogliono scaricare il file in modo veloce per poi spegnere il computer senza condividerlo più.
Quando si esegue una richiesta di download di un file(come mostrato in figura)bitTorrent non esegue subito il prelievo bensi aspetta prima di trovare in rete tutti i pacchetti relativi a quel file(almeno una copia ognuno)detta seme,e solo dopo averle trovate si inizia il download. è quindi necessario che ci siano molti utenti che condivadano le varie parti del file,per poter iniziare il prelievo,quindi il numero di utenti presenti si può dire che sia direttamente proporzionale all'efficienza del sistema(velocità di download).I peer che possiedono il file completo, chiamati semi ("seed") fanno in modo di completare il download sul personal computer dell'utente solo nel momento in cui hanno completato la copia del file stesso verso altri peer.Quando un utente decide di scaricare un file, cliccando sul file torrent che ha visto su un sito, il programma chiama il tracker, si fa indicare dove trovare un frammento, e appena lo ha scaricato lo condivide immediatamente con gli altri utenti in rete.Grazie a questi continui scambi si sfrutta al meglio la capacita teorica del segmento di rete a cui si è collegati.Ovviamente l'utente 'vede' soltanto il file che viene scaricato usando una porzione della banda disponibile.
2.5 -condivisione di file in BitTorrent
Condividere i file torrent non è difficile però richiede un po più di una semplice directory come negli altri programmi di file sharing(emule);sono necessari 3 elementi affinche si possa condividere un file: 1)un traker che coordina la comunicazione tra i vari peers; 2)un web server che memorizzi il file.torrent e lo renda disponibile;esso li deve saper indicizzare bed organizzare poichè nel protocollo di BitTorrent non è presente una fase di ricerca; 3)almeno un seeder che ospita il reale contenuto del file; all'inizio per gli utenti di BitTorrent era un po complicato condividere un file in quanto doveva essere in possesso di un proprio traker, di un web server e doveva fungare da seeder;con il passare degli anni molti furono gli utenti che misero a disposizione dei peers determinati traker e web server con motori di ricerca.Attualmente è disponibile un software di nome make torrent v2.1 che permette attraverso alcuni passaggi di condividere il file torrent in rete.
2.6 -Il protocollo BitTorrent
BitTorrent utilizza un protocollo nuovo ai sistemi P2P. La sua caratteristica principale è la facile estensibilità, segue il limitato consumo di banda. Il protocollo si basa su un algoritmo di codifica detto Bencode, utilizzato per le comunicazioni client/server e client/client.
'Il Bencode '
Bencode è una codifica derivata dall'XML,anche se la sintassi è ben diversa tra i 2.Esso ha in comune alcune caratteristiche con l'XML come l'estensibilità,la scalabilità ed il risparmio di caratteri nella codifica.Ci sono 4 tipi di codifica Bencode:il dizionario,la lista,l'intero e la stringa.Differentemente da XML il tipo intero è separato dal tipo stringa. Un dizionario e una lista possono contenere un numero infinito di elementi di natura qualsiasi, mentre intero e stringa non possono contenere altri elementi.
Codifica della stringa
Una stringa XXXXX viene codificata come l:XXXXX, dove l è la lunghezza in caratteri della stringa. Esempi: foo => 3:foo bar => 3:bar spam => 4:spam
Codifica dell'intero
Un intero Y viene codificato come iYe Esempi:
8 => i8e 765 => i765e
Codifica del dizionario
Il dizionario è formato da una serie di elementi ciascuno identificato da una stringa.Gli elementi possono essere di tutti i tipi o anche altri dizionari.Un dizionario con un elemento XYZ => ABC, indicando (ABC) la codifica in Bencode dell'elemento, è rappresentato dalla stringa d3:XYZ(ABC)e. Il carattere e è un terminatore.
Codifica della lista
Una lista inizia con il carattere l e termina col carattere e. Gli elementi sono disposti nel loro ordine, ciascuno nella rispettiva codifica.
'Il file di meta-informazioni'
Il file torrent, come già visto, contiene le informazioni necessarie e sufficienti per identificare e scaricare un file dalla Rete in tutta sicurezza. Il file torrent è un file di testo che contiene la codifica in Bencode di un unico grande dizionario, il quale contiene a sua volta i dati, sotto forma di dizionari, che identificano il torrent. I seguenti elementi fanno parte del protocollo standard e comprendono le ultime estensioni:
*announce(stringa): indirizzo URL del tracker codificato come stringa ASCII;
announce-list(lista): estensione del protocollo verso il Multitracker. Il dizionario announce è comunque richiesto per retrocompatibilità;
creation date(intero): data di creazione codificata come timestamp Unix;
comment(stringa): un commento al Torrent codificato come stringa ASCII;
created by(stringa): programma che ha generato il Torrent;
*info(dizionario): dizionario principale che descrive il contenuto del Torrent;
I suoi elementi possono variare se il Torrent è composto da uno o da più file
In caso di file singolo:
*length(intero): dimensione del file in byte;
md5sum(stringa): fingerprint MD5 del file per migliore identificazione;
*name(stringa): il nome del file in formato ASCII (i nomi UTF-8 e Unicode generano problemi di codifica);
In caso di archivio con più file: *files(lista): la lista dei file contenuti nel Torrent;
(dizionario): ogni file è rappresentato da un dizionario con la seguente struttura:
*length(intero): dimensione del file in byte; md5sum(stringa): fingerprint MD5 del file per migliore identificazione;
path(lista): lista di stringhe che permette di ricostruire il percorso del file prendendo gli elementi del loro ordine
Dir1/Dir2/File.ext); *piece length(integer): lunghezza in byte di ogni parte in cui è suddiviso il(i) file;
pieces(stringa): stringa che concatena le fingerprint SHA1 del/i file in formato ASCII. Se in fase di creazione la stringa non ha lunghezza multipla di 20, essa viene completata con zeri;
'Il protocollo client-traker'
Un client che vuole scaricare un file,dopo aver ottenuto il file di meta-dati,contatta il traker tramite il protocollo HTTP con una richiesta GET.Il client gli fornirà alcuni dati e riceverà dal traker un dizionario contenente informazioni sul traker stesso e gli indirizzi IP dei peer connessi.I dati che il client invierà al server sono:
- info_hash: hash SHA1 del dizionario info codificato in Bencode, in formato stringa codificata secondo le convenzioni URL
- peer_id: una stringa di 20 caratteri che permette di identificare in maniera quasi-univoca l'utente sul trackerport: numero di porta
sulla quale il client è in ascolto. Le porte tipiche sono nel range 6881-6900.
- uploaded: bytes inviati agli altri client dall'inizio della sessione, codificati in ASCII base-10
- downloaded: bytes scaricati dagli altri client dall'inizio della sessione, codificati in ASCII base-10
- left: bytes rimanenti al completamento del file, codificati in ASCII base-10. Il valore 0 indica un seeder
- event: può assumere i tre seguenti valori: "started", "stopped", "completed". Il primo viene inviato a inizio sessione e indica al tracker che si sta iniziando una nuova sessione.Il secondo chiude la connessione con il tracker e chiede di essere rimosso dalla lista dei peer. L'ultimo comunica al tracker il completamento del download e il passaggio allo status di seeder.
Il server traker(announce) risponde con una stringa MIME(text-plain)ovvero un dizionario con i seguenti elementi:
Se il client utilizza il Compact Announce:
- peers(stringa): ogni peer occupa 6 byte in questa stringa. I primi 4 rappresentano l'indirizzo IP in formato numerico, e gli altri 2 la porta.
I peer sono concatenati tra di loro in ordine di rete.
e il client non utilizza il Compact Announce:
- peers(lista): lista di dizionari, ciascuno dei quali contiene informazioni sul peer
- peer id(stringa): il valore arbitrario che il peer ha fornito in fase di connessione
- ip(stringa): l'indirizzo IP in formato IPv4, IPv6 o DNS
- port(intero): numero di porta usato dal peer
2.7 BitTorrent a confronto con gli altri sistemi peer to peer
Il metodo che utilizza BitTorrent di distribuire i file in parallelo è simile a quello che utilizza edonkey;ogni nodo presente in quest'ultimo però condivide e scarica una grande quantità di dati,senza nessun bilanciamento agli altri nodi presenti. Gli scambi di BitTorrent sono molto più veloci per i client coinvolti,grazie al fatto che tutti i nodi di un gruppo sono concentrati nel condividere un singolo file o un gruppo.Il protocollo di edonkey 2000 causa una bessa leech resistance. Chi ha una connessione adsl(banda larga)apprezzera subito la differenza di velocità in download tra i 2 sistemi.Tra i BitTorrent e gli altri software p2p disponibili oggi ci sono sonstanzialmente 2 differenze: Ad esempio nel primo non si effettua la ricerca del file per nome bensì attreverso degli appositi forum o motori di ricerca specifici dove è possibile trovare i file.torrent;inoltre esso non cerca di nascondere l'ultimo host disponibile riguardo un dato file. Uno dei grossi svantaggi bel progamma in questione però,è che i file muoiono facilmente su di esso perchè è nato più per la distribuzione dei file che per le condivisione.BitTorrent sembra sempre di più essere l'unico protocollo P2P utilizzabile per scopi legali: è molto diffuso per la distribuire di distribuzioni GNU/Linux. A seguito del suo successo, il creatore di BitTorrent, Bram Cohen, ha sviluppato un sistema per distribuire patch e altri contenuti e plug-in per videogiochi on line.
Bittorrent VS Emule e Co
PRO
- in bittorrent non esiste la coda
- in bittorrent la velocità di down è molto (ma molto) superiore
- in bittorrent il numero di fake è infinitamente inferiore (quasi pari a zero)
- in bittorrent c'è la possibilità di incontrare molte board monotematiche o generaliste
- una volta raggiunta la sufficiente dimestichezza con tale p2p, il bittorrent dà meno problemi di configurazione,settaggi e sopratutto di sicurezza di emule
CONTRO
- il numero di file presente nella rete bittorrent è inferiore alla rete edk2k (sopratutto a causa del successivo punto)
- le release nella rete bittorrent hanno vita inferiore (quindi accodatevi relativamente subito o rischierete di nn trovare alcun peer) : l'obiettivo della rete è infatti garantire elevate velocità di scarico ma in periodi di tempo brevi
- bittorrent è un relativamente giovane e innovativo p2p meno intuitivo dei "classici" p2p client-based (per intenderci emule ma anche openNap gnutella etc.) e richiede un minimo di attenzione per capirne i meccanismi
2.8 Un protocollo in via di sviluppo
Il software BitTorrent è sempre in via di sviluppo pertanto sono presenti continuamente in rete versioni nuove aggiornate e più efficienti.I sviluppatori di questo programma hanno come obbiettivo di rendere la rete decentralizzata.Un primo passo è stata l'introduzione del DHT (Distributed Hash Table, tabella di Hash distribuita).Un 'altro obbiettivo degli sviluppatori è quello di creare un vero motore di ricerca per i file.torrent anche per contrastare gli attacchi delle major ai siti aventi tali motori di ricerca.
2.9 DHT la tabella hash
le tabelle hash non sono altro che array dinamici presenti in ogni nodo nei quali ogni slot contiene l'indice(CHIAVE) ad un altro determinato nodo.In questo modo si può ottenere la decentralizzazione e si possono gestire una quantità grandissima di comunicazioni.C'è da dire però che attualmente le DHT servono come supporto per le comunicazioni del protocollo BitTorrent quando il TRAKER sia offline.Tuttavia in futuro le tabelle hash potranno sostituirsi definitivamente al server appena citato portando i seguenti vantaggi:
- decentalizzazione(sistema distribuito senza server centrali e quindi più veloce)
- scalabilità(possibiltà di gestione di moltissime comunicazioni)
- tolleranza ai guasti(sistema più tollerabile a malfuzionamento di nodi)
3 - Catturare il traffico dei pacchetti torrent tramite wireshark
In questa parte mi limiterò a descrivere le caratteristiche dei vari pacchetti che transitano nella rete quando è nel mezzo delle fasi operative del programma BitTorrent che sono ricerca file.torrent,selezione del file, e download di esso.Come gia enunciato prima il primo passo nel verificare tali caratteristiche è visitare sul web dei siti che abbiano dei motori di ricerca dedicati ai file torrent ed io ho travto questo sito web http://thepiratebay.org/ che a quanto si dice in rete è uno dei migliori. Il programma che ho utilizzato per catturare i pacchetti in transito è wireshark anch'esso disponibile in rete gratuitamente.
3.1 Fase di ricerca
La prima fase verificata è quella della ricerca del tipo di file torrent;inserendo una parola nella barra degli strumenti e cliccando sul link ricerca si accede ad una schermata che visualizza tutti i file torrent con il nome cercato.Wireshark mi fa notare come la richiesta di ricerca di un determinato file torrent avvenga tramite una richiesta di tipo GET e tramite il protocollo HTTP;altre caratteristiche visualizzate del pacchetto sono(richieste e risposte prese da follow tcp stream):
RICHIESTA GET /s/?page=0&orderby=3&q=green+day HTTP/1.1 (richiesta del file) Host: thepiratebay.org (web server) User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.5) Gecko/20070713 Firefox/2.0.0.5 (browser utilizzato) Accept: text/xml,application/xml,application/xhtml+xml,text/html; q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 (tipo di pagina) Accept-Language: it-it,it;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip,deflate(codifica) Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Referer: http://thepiratebay.org/ Cookie: PHPSESSID=5149bce2778616a5584aba1dd23add1a; language=it_IT; country=IT'' RISPOSTA HTTP/1.1 302 Found Transfer-Encoding: chunked Location: /search/green day/0/3/0 Content-Encoding: gzip Vary: Accept-Encoding Content-type: text/html Date: Mon, 23 Jul 2007 13:30:17 GMT Server: lighttpd
Ogni richiesta che il mio computer fa verso il web server era inoltrata tramite una GET.Altre richieste riguardano:
GET /css/pirate2.css HTTP/1.1 (richiesta dei fogli di stile->colori forma del testo della pagina) HTTP/1.1 200(text/css) OK(risposta)
3.1 Fase di selezione
La fase di richiesta consiste nel cliccare sul link del file torrent ed analizzare sempre tramite wireshark gli avvenimenti; ora la richiesta sempre tramite il metodo GET viene fatta al traker a cui il web server mi ha indirizzato perchè è proprio lui che contiene i file torrent;
RICHIESTA GET /search?sourceid=navclient-ff&features=Rank&client=navclient-auto-ff& googleip=O;66.249.91.99;125&ch=8504a7d56& q=info:http%3A%2F%2Fthepiratebay.org%2Ftor%2F3740839%2FGreen_Day_-_Working_Class_Hero.mp3 HTTP/1.1(richiesta della canzone mp3) Host: toolbarqueries.google.it(traker) User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.5) Gecko/20070713 Firefox/2.0.0.5 GoogleToolbarFF 3.0.20070525 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8, image/png,*/*;q=0.5 Accept-Language: it-it,it;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Cookie: PREF=ID=c23ff14b06821c14:TM=1185186617:LM=1185186617:S=gr20cDquSsIaQ4jJ RISPOSTA HTTP/1.1 200 OK Cache-Control: private Content-Type: text/html; charset=ISO-8859-1 Server: GWS/2.1 Content-Length: 0 Date: Mon, 23 Jul 2007 14:28:32 GMT
3.1 Fase di download
La fase di scaricamento del file consiste nello scaricare un file di modeste dimensioni(il torrent)aprirlo con l'applicazione usata(BitTorrent)che contatterà grazie alle informazioni contenute nel file appena scaricato,il traker avviando cosi il download.Wireshark visualizza i pacchetti con protocollo bittorrent che sono per lo più parti dei pacchetti che sta scaricando.