Sunteți pe pagina 1din 8

Progrese sistemele P2P.

Swift n
2011-2012, Arhitectura Sistemelor Cluster si Grid (ASCG) ,
Clin-Andrei Burloiu (calin.burloiu@gmail.com) a

Context

Din punct de vedere istoric, Internetul a fost initial gndit pentru comunicatie punct-la-punct a , , prezent partajarea de continut si streaming-ul au luat o deosebit amploare, de tip unicast. In a , , cea mai mare parte a tracului Internet ind ocupat de BitTorrent [2] sau streaming de lme a (YouTube, Netix etc.). Acest tip de trac are nevoie de o nou paradigm de comunicatie de a a , tip multiparty, diferit de cea unicast. Multicast-ul nu a rezolvat problema lipsindu-i exibilia tatea, de aceea tehnologii peer-to-peer precum BitTorrent au devenit att de populare. Acesta a din urm desi este foarte ecient, poate crea o serie de probleme infrastructurii actuale datorit a , a protoalelor de nivel inferior de care depinde. Aceast lucrare , i propune s prezint un nou protocol de transport, de tip multiparty, care a s a a vine ca o alternativ la BitTorrent, a ncercnd s rezolve problemele pe care le are sau le creaz a a a acesta. Acest protocol este numit swift [6], ind supranumit si BitTorrent la nivelul transport. , A fost proiectat pentru a avea un overhead redus si a fost gndit astfel at s ofere mod a nc a n , nativ si facilitti de streaming. a, ,

BitTorrent

Unul din cele mai importante caracteristici al unui transfer de date prin BitTorrent este faptul c atunci cnd se descarc un sier, loc s e folosit o singur conexiune TCP cu serverul, a a a n a a a , asa cum se ampl la un transfer FTP sau HTTP, se utilizeaz mai multe conexiuni ctre nt a a a , mai multi peer-i, fcndu-se multiple cereri pentru date mici. a a Intr-un transfer clasic, ltimea a, , de band este limitat de o singur conexiune utilizat, dar BitTorrent viteza este crescut, a a a a n a ind suma ltimilor de band ale tutoror conexiunilor. a, a Un peer este un sistem de calcul sau un program care particip mod activ la partajarea unui a n sier. El este general caracterizat de ltimea sa de band si viteza pentru upload / download, n a, a, , numrul de slot-uri pentru upload / download sau de comportamentul su (agresivitate, churn a a rate etc.).

Version 1.0/January 13, 2012

Page 1/8

Continutul partajat este artit bucti (pieces) de dimensiune egal, iar printr-un mecanism mp , n a, a , de tip hash check se face vericarea integrittii ecrei bucti din continutului descrcat. a, a a, a , Contextul care o sesiune de distributie de continut are loc BitTorrent este denit de un n n , , swarm, o multime de peer-i care particip la partajarea aceluiasi continut. a , , , Comunicatia ntr-un swarm este de regul mediat de un tracker, denit a a ntr-un sier .torrent. , , El este contactat periodic de peer-i pentru a aa de existenta altor peer-i. Exist si solutii a , , , bazate pe DHT (Distributed Hash Table), care tracker-ele nu mai exist si rolul acestora n a , este preluat de peer-i, care retin mod distribuit si informatii despre alti peer-i din sistem. n , , , , Pentru ca un utilizator s poat intra sistem pentru a descrca continut, acesta trebuie s a a n a a , obtin un sier .torrent, care contine toate informatiile necesare pentru a a ncepe download, , , , area datelor. Aici exist punctul de bootstrap, si anume tracker-ul sau nodul DHT de unde a , vor aate adresele altor peer-i (IP si port). Continutul si totodat swarm-ul este identicat a , , , sierul torrent exist de asemenea cte un hash pentru ecare piece, a a printr-un info hash. In , pentru vericarea integrittii, evitndu-se astfel posibilitatea ca un peer malitios s furnizeze a, a a , date false. O serie de alte metadate pot incluse sierele .torrent. n , Exist si o modalitate ceva mai nou de a intra sistemul BitTorrent pentru a descrca a , a n a continut. Se pot folosi MagnetLinks, URI-uri care codeaz punctul de bootstrap (tracker-ul a , a sau nodul DHT) si info hash-ul. Dezavantajul lor este c integritatea piece-urilor nu poate , vericat. a

3
3.1

Functionarea swift ,
Intrarea ntr-un swarm

Presupunem c un peer A doreste s descarce un anumit continut. Pentru a a a ncepe download, , area cu swift, acesta trebuie s aib swarm ID-ul pentru continutul respectiv si o list cu unul a a a , , sau mai multe adrese de tracker-e sau noduri DHT. Peer-ul A se nregistreaz la tracker si primeste adresa IP si portul peer-ilor care sunt deja a n , , , swarm, s zicem B, C si D. A trimite o datagram continnd un mesaj HANDSHAKE ctre a a a a , , B, C si D, care are rolul de a conrma c peer-ii se a swarm-ul corect. Mesajul contine a a n , , root hash-ul swarm-ului. Peer-ii B si C rspund cu datagrame continnd de asemenea mesaje a a , , HANDSHAKE si plus unul sau mai multe mesaje HAVE. Acestea din urm precizeaz ce n a a , bucti din continut, numite continuare chunk -uri, detin peer-ii care au transmis mesajul a, n , , HAVE, adic B si C. Peer-ul D trimite o datagram care contine doar un HANDSHAKE si a a , , , omite trimiterea de mesaje HAVE, realiznd ceea ce se numeste choking, similar cu protocolul a , BitTorrent.

Version 1.0/January 13, 2012

Page 2/8

3.2

Schimbul de chunk-uri

Ca rspuns la B si C, A trimite noi datagrame ctre acestea, continnd mesaje HINT. Un a a a , , mesaj HINT este un mesaj de tip cerere care indic acele chunk-uri pe care un peer vrea s le a a descarce. Mesajele HINT ctre B si C se refer la seturi distincte de chunk-uri. B si C rspund a a a , , cu datagrame care contin mesaje DATA, HASH si HAVE. Mesajele HASH contin toate hash, , , urile criptograce de care are nevoie peer-ul A pentru a verica integritatea continutului din , chunk-urile stocate mesajele DATA, folosind root hash-ul continutului. Folosind aceste hashn , uri peer-ul A veric dac chunk-urile primite de la B si C sunt corecte. De asemenea veric a a a , disponibilitatea chunk-urilor din B si C cu ajutorul mesajelor HAVE primite. , Dup procesare, A trimite o datagram continnd un mesaj HAVE ctre toti peer-ii pentru a a a a , , datagramele ctre B si C, include un mesaj ACK, care chunk-urile pe care le-a primit. In a , conrm primirea chunk-urilor si adaug mesaje HINT pentru noi chunk-uri. a a ,

3.3

Identicarea si agregarea chunk-urilor ,

Swift foloseste o metod generic de adresare a continutului bazat pe intervale binare, numite a a a , , bin-uri (binary intervals). Un interval este format din unul sau mai multe chunk-uri agregate si este identicat unic printr-un numr a ntreg numit bin number. Pentru a deriva bin numbers , este necesar construirea unui arbore binar minimal echilibrat. Frunzele arborelui corespund a cu chunk-uri. Dac ecare chunk are un index i, atunci bin number-ul chunk-ului este i 2. Bin a number-urile nodurilor superioare se calculeaz ca jumatatea sumei bin number-urilor copiilor. a Astfel ecare interval de continut este adresabil printr-un bin number. ,

Figure 1: Arbore de bin-uri

Version 1.0/January 13, 2012

Page 3/8

3.4

Merkle Hash Tree

Swift foloseste o modalitate de identicare a continutului bazat pe self-certication, acesta a , , ind identicat de un singur hash criptograc, numit root hash ntr-un Merkle hash tree si care , se calculeaz recursiv din continut. Acest tip de arbore permite ecrui peer s detecteze atunci a a a , cnd un peer malitios a ncearc s distribuie continut fals. Permite de asemenea ca a a nceperea , , unui download s poat a a ncepe cu foarte putin informatie: doar un root hash si niste adrese a , , , de peer-i.

Figure 2: Arbore de bin-uri Un Merkle hash tree pentru un continut care este artit N chunk-uri este construit felul mp , n n , urmtor. Se calculeaz hash-urile pentru toate chunk-urile, apoi se creeaz un arbore binar a a a un o altime sucient de mare astfel at toate chunk-urile s n , nc a ncap pe nivelul cel mai de a jos. Figura de mai sus 2 ilustreaz un arbore pentru un continut cu 7 chunk-uri. Ca si mai a , , nainte cnd aveam de a face cu schema de adresare a continutului, frunzele arborelui corespund a , unor chunk-uri si aceast situatie au asociate ecare cte un hash pentru chunk-ul respectiv. a a , n , Deoarece baza arborelui poate adposti mai multe frunze dect chunk-uri, cele rmase nefolosite a a a vor avea un hash nul. Hash-ul unui nod printe se calculeaz prin concatenarea hash-urilor a a copiilor si calcularea unui nou hash din aceast valoare. Calculnd recursiv, procesul se termin a a a , cnd se ajunge la nodul rdcin, pentru care se obtine root hash-ul. Acesta depinde de a a a a , continut, asadar orice modicare / falsicare a acestuia duce la obtinerea unui root hash diferit. , , ,

Version 1.0/January 13, 2012

Page 4/8

3.5

Vericarea integrittii continutului a, ,

Presupunnd c un peer primeste root hash-ul unui continut dintr-o surs sigur, acesta poate a a a a , , verica integritatea ntregului continut pe care primeste felul urmtor. Pentru l n a nceput , , calculeaz hash-ul chunk-ului pe care l-a primit, spre exemplu chunk-ul C4 din gura de mai a sus. Impreun cu chunk-ul trebuie s primeasc si alte hash-uri necesare vericrii integrittii a a a , a a, chunk-ului respectiv. Aceste hash-uri sunt cel al fratelui su (sibling) si cele ale unchilor si a a , (uncles). Folosing aceast informatie peer-ul recalculeaz root hash-ul arborelui si compar a a l a , , cu root hash-ul primit de la sursa sigur. Dac se potrivesc, vericarea prtii respective de a a a , continut s-a fcut cu succes. Dac nu, cellalt peer a comunicat date sau hash-uri gresite. a a a , ,

4
4.1

Imbunttirile swift fat de BitTorrent a a, ,a


Intrarea sistem n

BitTorrent, intrarea sistem pentru descrcare de continut este greoaie, ind necesar e In n a , un sier .torrent e un MagnetLink. Ambele variante au dezavantaje care nu apar swift. n , Fisierele torrent au dezvantajul c pot ajunge s aib dimensiuni destul de mari pentru o a a a , operatie att de simpl precum a a nceperea unui download. FTP sau HTTP este necesar In n a , doar trimiterea ctorva biti, pe ct vreme un sier torrent poate avea si ctiva MiB. Un alt a aa a, , , , dezavantaj este asi faptul c torrentul este un sier. swift tot ce este necesar este root ns , a In , hash-ul si unul sau mai multe puncte de bootstrap. De cele mai multe ori este mult mai usor , , s retii aceste cteva informatii dect s obtii un sier. a , a a a , , , MagnetLink-urile sunt mult mai usor de manevrat deoarece sunt URI-uri. Ele pot asate ca , , link-uri ntr-un browser web, legarea ctre clientul BitTorrent sau distribuirea lor fcndu-se a a a mult mai usor. Dezvantajul lor este c nu faciliteaz hash cheking pentru piece-uri (chunk-uri), a a , crend o problem de securitate situatia care exist peer-i malitiosi. swift, informatia a a n n a In , , , , poate retinut ca MagnetLink, a plus fata de BitTorrent, vericarea integrittii poate a ns n a, , , realizat datorit folosirii Merkle hash tree. a a

4.2

Inutilitatea facilittilor TCP difuzarea de continut a, n ,

Protocolul de transport TCP ofer foarte multe facilitti cu principalul scop de a oferi abilitate a a, a toate acestea au si un pret, cresterea overhead-ului. Exist situatii, cum este (reliability). Ins a , , , , cazul difuzrii de continut, care aceste facilitti nu sunt necesare, ba chiar pot dauna si se a n a, , , prefer schimb un overhead redus. a n

Version 1.0/January 13, 2012

Page 5/8

TCP ofer ceea ce se cheam reliable in-order delivery, facilitate prin care se garanteaz c a a a a cazul difuzrii de continut, ajungerea pachetele vor ajunge ordinea care au fost trimise. In n n a , pachetelor sau buctilor de continut ordine nu este necesar. Astfel de aplicatii descarc a, n a a n , , cazul lor important este viteza cu care ajung si nu mod nativ parti arbitrare din sier. In a , , , ordinea. Chiar si cazul transmisiunilor direct, se foloseste buering si nu are relevanta n n , , , , ordinea care ajung pachetele buer, important este ca ele s e acolo momentul care n n a n n ele trebuie s e redate. Swift poate renunta asadar la reliable in-order delivery. a , , TCP nu stie dinainte ce date vor trimise, el le primeste secvential de la nivelul aplicatie si le , , , , , trimite. cazul difuzrii de continut datele partajate sunt cunoscute avans. Astfel se spune In a n , c TCP este centrat pe date, iar swift este centrat pe continut. a , TCP realizeaz conexiuni punct-la-punct. Swift este un protocol multi-party, deoarece reala izeaz conexiuni mai-multi-la-mai-multi. a , , TCP este un protocol reliable, garantnd ajungerea datelor la destinatie. Swift nu pune foarte a , mult accent pe acest lucru, lucru care aparent poate un dezvantaj, a datorit redundantei ns a , datelor unreliability este compensat. Astfel c dac datele nu au ajuns de la un peer, nu este a a a nicio problem, ele pot luate de la un alt peer. Rezultatul este un overhead mai sczut. a a

4.3

Problemele create de TCP difuzarea de continut n ,

O problem care nu a fost luat calcul la proiectarea TCP este prioritizarea tracului conexia a n unilor, problem ce tine de QoS (Quality of Service). Dac la nivelul IP exist aceast facilitate, a , a a a tracul putnd prioritizat cadrul retelei, acest lucru nu se poate face si pentru aplicatiile a n , , , de pe aceasi masin. a , , TCP multiplexeaz socketii pe o singur conexiune de nivel retea, asigurnd o distribuire a a a , , uniform a ltimii de band pe ecare socket. Astfel c, se ajunge ca aplicatiile care deschid a a, a a , mai multi socketi s aib din punct de vedere probabilistic o prioritate mai mare, iar celelalte o a a , , prioritate mai mic. O aplicatie precum BitTorrent care deschide mai multe conexiuni va avea a , mai multe sanse la ltimea de band dect un brower care va deschide o singur conexiune a a a a , ctre un site. BitTorrent, ind o aplicatie de tip background, ar trebui s aib o prioritate mai a a a , mic, pe ct vreme aplicatiile web, e-mail sau VoIP ar trebui s aib prioritate mai mare ind a aa a a , foreground. momentul care se foloseste BitTorrent cu TCP, aplicatiile foreground ajung n In n , , s aib latente la upload, uneori chiar de ordinul secundelor. a a , Deoarece BitTorrent tinde s epuizeze ltimea de band maximiznd-o, ISP-urile au de suferit a a, a a si multe dintre ele au blocat dealungul timpului tracul BitTorrent. ,

Version 1.0/January 13, 2012

Page 6/8

4.4

LEDBAT si implementarea sa TP n ,

LEDBAT [5] este un Working Group cadrul IETF si reprezint acronimul de la Low Extra n a , Delay BAckground Transport. El este un algoritm de control al congestiei, publicat prezent n sub form de draft, care are ca scop minimizarea latentei pentru alte aplicatii concurente a , , (din foreground) si maximizarea ltimii de band pentru aplicatia ce foloseste LEDBAT (din a, a , , , background), atunci cnd latenta nu este excesiv. a a , LEDBAT poate o alternativ la algoritmul de control al congestiei din TCP si datorit a a , performantelor sale reducerea latentelor este adecvat pentru difuzarea de continut. n , , , TP [1], de la Micro Transport Protocol, este un protocol de transport pentru BitTorrent, realizat peste UDP, care implementeaz algoritmul LEDBAT. El a fost realizat de BitTorrent a Inc. si 2010 a fost publicat open-source. De atunci a fost implementat majoritatea n n , clientilor BitTorrent, iar prezent se estimeaz c 80-90% din tracul BitTorrent este TP [3]. n a a , Pentru implementarea LEDBAT TP s-a pus o latenta maxim tint de 100 ms pentru n a , a , ecare socket. Att transmitatorul ct si receptorul marcheaz pachetele cu un timestamp, a a , a , astfel c felul acesta se poate calcula latenta. Dac aceasta creste peste 100 ms, TP , i a n a s , , limiteaz conexiunea de upload, reducnd dimensiunea pachetelor. Acestea pot ajunge pn la a a a a 150 de octeti. Cnd pachetele sunt mai mici timpul de serializare este mai mic si prin urmare a , , va scdea latenta pentru conexiunile concurente. Odat cu latenta scade si viteza de upload a a , , , pentru tracul background TP.

4.5

Extensibilitatea swift

Swift a fost proiectat de asa natur astfel at s e extensibil. El poate rula deasupra a a nc a , teorie el poate rula peste TCP sau chiar HTTP (dac acest diverse protocoale de transport. In a lucru este practic), a o astfel de implementare nu este recomandabil datorit motivelor ns a a amintite anterior. Asadar varianta ocial ruleaz peste UDP. a a , Ca algoritm de control al congestiei pentru varianta UDP poate folosit LEDBAT pentru consumatori, atunci cnd difuzarea de continut este mai putin important, ind background a a , , trac, sau poate folosit un algoritm genul celui folosit TCP. Aceast din urm variant n n a a a este recomandabil pentru serverele de difuzare de continut, care transmiterea acelui continut a n , , este important si nu latenta altor conexiuni concurente. a , , Swift poate folosit si cu in-order delivery si cu out-of-order delivery. De asemenea are suport , , si pentru IPv6, iar numrul de biti pentru hash-urile SHA1 poate crescut de la 160 de biti la a , , , 256.

Version 1.0/January 13, 2012

Page 7/8

O privire spre viitor

BitTorrent dup mai bine de 10 ani de existenta, timp care a reusit s devin protocolul a n a a , , responsabil cu mai mult de jumtate din tracul Internet [4], nu a reusit totusi s obtin un a a a , , , sprijin ocial din partea IETF. Astfel c nu a fost publicat nici mcar ca draft. a a Pe de alt part mezinul swift este deja draft IETF. PPSP, de la P2P Streaming Protocol este a a un set de cerinte IETF pentru un nou protocol destinat streaming-ului peste overlay peer-to, peer. Au fost propuse dou protocoale ca draft-uri pentru PPSP, GU si swift. Dup lungi a a , dezbateri cadrul IETF, swift a iesit cstigtor. n a, a , Swift promite s reduc din problemele create de BitTorrent, att tracul foreground al a a a n utilizatorilor de rnd, ct si cazul ISP-urilor. Chiar dac TP a rezolvat deja aceste probleme, a a , n a overhead-ul redus al swift-ului, datorit mecanismului ingenios cu arbori, posibilitatea mai a simpl de a intra sistem si sustinerea pe care o are din partea IETF, pot propulsa ctre un a n l a , , viitor glorios. Dar pn atunci trebuie s asteptm optimizarea si a a a , a a a, a , mbunttirea sa, culminat cu aparitia unui RFC. ,

References
[1] BEP-29. http://www.bittorrent.org/beps/bep 0029.html. [2] BitTorrent Ocial Specication. http://bittorrent.org/beps/bep 0003.html. [3] How BitTorrent wants to save the Internet. http://gigaom.com/broadband/bittorrent-utpsuccess-story/. [4] ipoque Internet Studies. study-2008 2009. http://www.ipoque.com/resources/internet-studies/internet-

[5] LEDBAT. http://datatracker.ietf.org/wg/ledbat/charter/. [6] swift. http://tools.ietf.org/html/draft-grishchenko-ppsp-swift-03.

Version 1.0/January 13, 2012

Page 8/8

S-ar putea să vă placă și