Veliko ljudi ne ve, kako deluje izmenjava podatkov med trackerjem in BitTorrent klientom. To je povzetek vsega, kar se dogaja za našim prenašanjem. Klient komunicira s trackerjem preko preprostih HTTP GET ukazov.
Prvi v našem primeru je:
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
Pa ga razčlenimo:
• info_hash je identifikacija torrenta;
• peer_id, je identifikacija BitTorrent klienta;
• port, pove trackerju na katerem portu se izvaja prenos;
• uploaded=0, količina bajtov prenešena gor;
• downloaded=0, količina bajtov prenešena dol;
• left=753690875, pove koliko bajtov še ostane do konca prenosa;
• event=started, pove klientu, kdaj je prenos začel.
Vedi, da se uporabnikov IP tukaj ne pokaže (razen, če si uporabnik sam ne nastavi tako). Pokaže se samo v Moji izkaznici!
To je faza začetka prenosa torrenta.
Od sedaj naprej bo klient pošiljal GET ukaz na tracker. Spodaj je kot primer prikazan le prvi GET ukaz,
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"pove klientu, koliko drugih uporabnikov je še aktivnih na temu torrentu, v tem primeru 0.)
Kot vidiš, je uporabnik v tej fazi prensel gor približno 68MB in prenesel dol približno 40MB. Ko tracker prejme te GET ukaze, bo osvežil stanje prenešenega dol/gor. Ukazi GET se pošiljajo na približno 15-30 minut (odvisno od klienta in trackerja), lahko pa jih pošlješ tudi ročno.
Na koncu, preden se zapre klient, se pošlje:
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
Najpomembnejši je
"event=completed". V tej fazi, torrent ne bo več prikazan v Moji izkaznici.
Če zaradi kakršnegakoli razloga (nedosegljivost trackerja, izgubljena povezava, slab klient, sesutje, ...), ta zadnji GET ukaz ne pride do trackerja, ga bo klient pošiljal toliko časa, da ga tracker sprejme. Vedi, da se bo ta GET ukaz poslal le, ko bo klient pravilno zaprt, ne pa tudi, ko prenehaš s prenosom. (V tem primeru bo tracker prepoznal, da se torrent seje - left=0).
Obstaja še en GET ukaz, ki ga klient pošlje, če sredi prenosa torrent ustaviš (event=stopped).
Še zadnje sporočilo, veliko klientov ima gumb za pavzo.Le-ta ne bo poslal nobenega GET ukaza trackerju, zato ne uporabljajte gumba za pavzo za osveževanje trackerja, ker zadeva preprosto ne bo delovala!
|