bitvault.shellrent.com -- Your brand new Italian Bittorrent source!
browse  login  registrati  browse  browse 

Benvenuti in BitVault

Anatomia di una sezione torrent



Sembra che ci sia molta confusione su come si aggiornano le statistiche. Di seguito è riportata un approfondimento per vedere come funzione nel "dietro le quinte". Il client comunica con il traker via semplici comandi http. In questo caso l'inizio è:

GET /announce.php?info_hash=c%97%91%C5jG%951%BE%C7M%F9%BFa%03%F2%2C%ED%EE%0F& peer_id=S588-----gqQ8TqDeqaY&port=6882&uploaded=0&downloaded=0&left=753690875 &event=started

Scomponiamo il significato:

info_hash è solo l'hash che identifica il torrent in questione;
peer_id, come dice il nome stesso, identifica il client (la parte s588 identifica Shad0w's 5.8.8, il resto è random);
port dice al traker qual'è la porta che il client utilizza per le connessioni in entrata;
uploaded=0; (questa parte e la successiva sono le più rilevanti, e si spiegano da sole)
downloaded=0;
left=753690875 (quanto manca);
event=started (dice al traker che il client è appena partito).

Da notare che l'indirizzo IP non si vede qui sopra (anche se può essere inviato in caso che il client sia configurato per farlo).
Il traker associa l'Ip all'user_id.
(Le risposte del server vengono omesse, compare solo la lista degli ip e le loro relative porte.)
A questo punto nel profilo dell'utente si vede il torrent in download.

>Ora il client prende i dati dal traker. Qui di seguito portiamo un esempio,

GET /announce.php?info_hash=c%97%91%C5jG%951%BE%C7M%F9%BFa%03%F2%2C%ED%EE%0F& peer_id=S588-----gqQ8TqDeqaY&port=6882&uploaded=67960832&downloaded=40828928& left=715417851&numwant=0

("numwant" ecco comme il client dice al traker quanti nuovi peers vuole,in questo caso 0.)

Come si può vedere a questo punto l'utente ha uploaddato circa 68MB e scaricato circa 40MB. Ogni volta che il traker riceve questi comandi aggiorna entrambe le statistiche download/upload del torrent e quelle generali dell'utente. Questi comandi intermedi vengono inviati periodicamente (ogni 15 min di solito, dipende dal client e dal traker) o quando forzi l'announce del client.

Infine, quando il client è chiuso invia:

GET /announce.php?info_hash=c%97%91%C5jG%951%BE%C7M%F9%BFa%03%F2%2C%ED%EE%0F& peer_id=S588-----gqQ8TqDeqaY&port=6882&uploaded=754384896&downloaded=754215163 &left=0&numwant=0&event=completed

Nota: tutti gli eventi importanti sono stati completati. E' a questo punto che il torrent viene rimosso dal profilo dell'utente. Se per qualche ragione (tracker down, connessione persa, bad client, crash, ...) quest'ultimo comando non viene ricevuto dal traker il torrent rimane visibile nel profilo utente fino a che il traker non va in timeout. Questo messaggio vine mandato solo quando il client viene chiuso appropriatamente, non quando il download è finito.

C'è un ulteriore messaggio che causa la rimozione del torrent dal profilo utente, namely"event=stopped". Questo viene mandato solitamente quando il torrent viene stoppato nel mezzo del download e.s. premendo 'Cancel' in Shad0w's.

Un ultima nota: alcuni client hanno l'opzione pausa/resume. Non verrà mandato alcun messaggio al server.