120 likes | 228 Views
Infrastructura de COLECTARE ş i RAPORTARE î n sistemele p2p. student: Tudor Rogoz Coordonatori : As.drd ing . R ă zvan Deaconescu Prof. dr. ing . Nicolae Ţă pu ş. Scopul proiectului.
E N D
Infrastructura de COLECTARE şi RAPORTARE în sistemelep2p student: Tudor Rogoz Coordonatori: As.drd ing. RăzvanDeaconescu Prof. dr. ing. NicolaeŢăpuş
Scopul proiectului • Implementarea unei soluţii de colectare, analizăşi raportare a informaţiilor oferite de mai mulţi clienţi BitTorrent în contextul rulării: timp de transfer, durată, viteză de download, upload, memoria folosită etc. • Infrastructura oferă ca funcţionalitate: • Colectarea datelor (datele sunt stocate în fişiere de log) • Analiza datelor (interpretarea informaţiilor prin corelarea cu datele oferite de ceilalţi clienţi) • Raporatea rezultatelor prin grafice pentru fiecare argument important într-un anumit context (numărul de peeri, dimensiunea fişierului, perioadă a zilei etc.)
Sisteme peer to peer • Modelul peer-to-peer • Nu există server dedicat (nu este o reţea centralizată) • Nu există o ierarhie • Nodurile sunt “egale” (îndeplinesc funcţia şi de client şi de server) • Avantaje sisteme P2P • Fiecare peer dispune de resurse proprii (lăţime de bandă, putere de calcul, spaţiu de stocare) • Adăugarea unui nou nod în reţea implică creşterea performanţei sistemului client si server clienti VS server Modelul P2P Modelul client - server
Protocolul BitTorrent • Peer–to–peer file sharing protocol • Responsabil cu 35% din traficul total pe Internet (2002) • Funcţionalitate Seeder 1.Deschide metainfo file (Mytorrent.torrent) 5.Trimite handshake Peer cedoreştedownloadareafişieruluidescrisîn metainfo file Peer ce conţine anumite bucăţi (pieces) din fişier 6.Răspunde cu handshake 4.Trimite răspunsulcererii (ip+port+peerId) 2.Se conectează la tracker şicerelista de peeri 7.Prin requesturisuccesive la ceidoi remote peeri şiîn funcţie de anumiţialgoritmi (rarest first, chocking and optimistic unchocking etc.) se downloadeazăfişieruldorit 3.După un algoritminteligent tracker-ulcreazălista de peericerută Tracker
Infrastructura de experimente • 9 statii , 2 GB RAM , 300 GB HDD, 3 GHZ CPU dual-core • Fiecare statie contine 5 masini virtuale OpenVZ ce ruleaza un Linux Kernel • Consecinte: • 45 de masini virtuale fiecare ruland un client de torrent (poate simula un swarm de 45 de peeri) • Consum mic de memorie si CPU => se poate marii usor platforma de experimente
Clienţi bitTorrent • Toate au sau au fostmodificatesaaiba CLI • Azureus( Vuze ) : scris in Java, fara CLI • Hrktorrent: bazatpelibtorrent ,scris in C++,are CLI • Tribler: scris in Java,ofera CLI • Transmission: scris in C, inclus in Ubuntu Linux distribution • Aria2: client de HTTP, FTP,BitTorrentscris in C++ • BitTorrent Mainline: scris in python de Bram Cohen
Structura proiectului Experiment Fisiere status/log Parsarefisierestatus/log Download/Upload speed, peeri conectati, chocking ,unchocking , interested ,request etc. Corelarea informatiilor si analiza acestora Grafice
Fişierele de log • Fiecare client de torrent foloseşte o jurnalizareproprie • Exemplu: libtorrent • Fişiere de status: conţin upload/download speed, peeriiconectaţi(raportate la un moment de timp) • Fişiere de log: • Conţin mesajeleinterschimbateîntrepeeri, tipulclientului cu care s-a conectatşialteinformaţii interne ale clientuluirespectiv • Câte un fişierpentrufiecareconexiune din swarm • Pot ajunge la dimensiunifoartemariîn funcţie de duratasesiunii
Parsarea logurilor • Implementataîn python • Foloseştemodulul python pickle (în fişierele .pklsuntobiecte) =>se pot încărcafoarte uşor dateleîn memoriepentrugrafice ul.pkl dl.Pkl ps.pkl Fişier status Parser Fişier log choke.pkl request.Pkl piece.pkl have.pkl Interested.pkl Parser
Interpretarea rezultatelor • Informaţiile obţinute sunt folosite pentru raportare prin grafice • Utilizatorul va putea face o anumită configurare pentru crearea graficului în funcţie de dorinţele sale: download speed/durata sesiunii, requesturile făcute către un anumit client pe un anumit interval; se va putea compara evoluţia mai multor peeri pe parcursul sesiunii în acelaşi grafic etc. • Aplicaţia va trebui săştie să facă anumite corelaţii între diferite mărimi în puncte cheie ale sesiunii de download/upload
Concluzii şi dezvoltări ulterioare • Se poate face o legăturăîntre anumiţi parametrii de configurare din experiment (parametrii de intrare) şi rezultatele obţinute prin graficele finale(parametrii de ieşire) : • Parametrii de intrare: limitări de bandă, număr peeri, clienţi BitTorrent folosiţi, număr de clienţi de fiecare tip, numărul seed-erilor, dimensiunea torentului, numărul de sloturi de upload pe torrent, enable DHT, mărimea/numărul block-urilor, mărimea/numărul piece-urilor etc. • Parametrii de iesire: download speed, upload speed, ETA, numărul peer-ilor conectaţi, raţia pe torent, churning, durata de viaţă a swarm-uli, momentul intrării clientului în swarm raportat cu timpul de început al swarm-ului, seeding time, utilizare procesor, utilizare memorie etc. • Se pot testa/compara automat clienţi BitTorrent ce sunt folosiţi în lumea reală, ceea ce poate contribui la o dezvoltare ulterioară a protocolului BitTorrent şi a clienţilor ce îl implementează
Întrebări ? Contact tudor.rogoz@gmail.com wiki : http://koala.cs.pub.ro/projects/btrt