|
(Uppdaterad för att matcha förändringar i trackern. 14-04-2004)
Många verkar tycka att det är lite svårt att förstå hur statistikuppdateringarna går till. Följande text ska förklara för dig hur det går till under en session. Din torrentklient kommunicerar med trackern genom simpla http GET kommandon. I det här fallet så var det första;
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
Låt oss nu bena ur detta;
info_hash är den hash som indentifierar vilken torrent det gället.
peer_id, precis som du hör så indentifierar detta klienten. ( s588 indentifierar Shad0w's 5.8.8, resten är slumpmässiga);
port berättar för trackern vilken port klinten skall använda sig av.;
uploaded=0; (denna och resterande är de som är viktiga, man hör dock på namnet vad det rör sig om.)
downloaded=0;
left=753690875 (hur mycket som är kvar);
event=started (berättar för tracken att klienten har startat.).
Lägg märke till att klientens IP inte syns här. (visserligen kan man konfiguera klienten till att visa det..).
Det är trackerns jobb att se IPt och koppla det till rätt user_id.
(Server replies will be omitted, they're just lists of peer ips and respective ports.)
Nu kan användaren gå in i sin profil och se att torrenten listas under 'leeching torrents'.
>Efter detta fortsätter klienten skicka GETs till trackern. Ni kan se den här nedan som exempel,
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" är klientens vis att tala om för trackern hur många nya peers den behöver, i det här fallet 0.)
Som du kan se här så har användaren laddat upp ungefär 68MB och laddat ner ungefär 40MB. Närhelst trackern får
dessa GETs å uppdaterar den både statsen i 'currently leeching/seeding' på profilsidan, och den totala up/download-statsen. GETs skickas antingen periodsvis (var 15 min
ungefär, beroende på klient och tracker) eller när du tvingar klienten manuellt till kontakt med trackern.
Till sist, när klienten stängs så sänder den;
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
Notera "event=completed". Det är nu som torrenten kommer försvinna från användarens profil.
Om det av någon anledning blir som så att trackern skulle gå ner, att du tappar din uppkoppling, har fel klient... så når inte det sista GET 'et trackern, och torrenten kommer fortfarande synas i användarens profil tills någon form av tracker timeout sker. Det skall understrykas att detta meddelande endast sänds när klienten stängs ner som den skall, inte när nedladdningen är färdig. (Trackern kommer lista torrenten som 'currently seeding' då den får ett GET med informationen; left=0).
Det finns ännu ett meddelande som får torrenten att bli borttagen från användarens profil, nämnligen "event=stopped". Detta sänds vanligtvis när man stoppar en nedladdning, dvs.. trycker 'Cancel' in Shad0w's.
En sista sak: vissa klienter har ett pause/resume-alternativ . Detta skickar inte något meddelande till servern.
Använd det inte som ett sätt att uppdatera statsen oftare, det är onödigt då det inte fungerar. (Checked for Shad0w's 5.8.11 and ABC 2.6.5.)
|