P2P, quale futuro?
Il traffico Internet sta subendo da anni una trasformazione caratterizzata dall'incremento dell'incidenza del traffico generato da applicazioni peer-to-peer (P2P), utilizzate dapprima per la condivisione dei file, e di recente anche per comunicazioni real-time e streaming di contenuti. Tale traffico, che secondo le stime costituisce tra il 40% e l'85% del totale (fonte
www.cachelogic.com), può essere causa di fenomeni di congestioni della rete.
La peculiarita' delle applicazioni P2P, come BitTorrent, eMule, Gnutella, Skype, Sopcast e PPLive, consiste nel fatto che gli utenti accedono a risorse come file o media disponibili in centinaia o addirittura migliaia di istanze distribuite su tutta la rete.
Se da un lato l'alto livello di delocalizzazione è alla base del successo di tali applicazioni, allo stesso tempo ne costituisce il punto debole in termini di prestazioni. Infatti, dal momento che lo strato applicativo non ha generalmente accesso ad alcun tipo di informazione riguardo la topologia della rete, quando un peer deve selezionare una specifica istanza della risorsa a cui accedere, ad esempio uno o più utenti da cui scaricare un determinato file, spesso non può fare altro che ricorrere ad una scelta casuale. A causa di questa dis-ottimizzazione, sono molto frequenti casi paradossali in cui, ad esempio, i download di file occupano risorse su link oceanici, mentre gli stessi contenuti sono disponibili a pochi chilometri di distanza.
Studi recenti mostrano che, introducendo negli algoritmi P2P meccanismi per allineare l'overlay network (costituita dalle connessioni tra i peer) alla topologia delle reti sottostanti, è possibile ottenere un notevole miglioramento delle prestazioni delle applicazioni stesse, ad esempio in termini di rate di download, riducendo allo stesso tempo il consumo di risorse di rete.
Negli ultimi anni sono stati proposti diversi meccanismi per ottimizzare i sistemi P2P in base alla topologia delle reti sottostanti. Un primo approccio consiste in algoritmi distribuiti basati su misurazioni effettuate dai peer stessi, mirate a stimare proprietà dei link fisici quali delay, jitter e packet loss rate. I risultati delle misurazioni vengono poi condivisi tra i vari peer del sistema al fine di comporre un'approssimazione condivisa della mappa della rete che ogni client può utilizzare per effettuare la scelta dei peer a cui connettersi. Oltre ad avere attratto grande interesse da parte della comunità scientifica, alcuni di questi algoritmi sono stati implementati nelle applicazioni più diffuse e sono tutt'ora utilizzati con discreti risultati. Il limite più evidente di tale approccio consiste nel fatto che le misurazioni che si possono effettuare dagli endpoint della rete sono generalmente o troppo costose – ad esempio stime di throughput richiedono scambi di grandi quantità di dati – o poco significativi – ad esempio semplici misurazioni di Round Trip Time (RTT) non danno indicazioni sulla effettiva disponibilità di banda, cruciale nel caso del file-sharing.
Un approccio alternativo, investigato negli ultimi anni sia in ambito accademico che industriale, prevede un ruolo attivo degli Internet Service Provider (ISP) nel guidare le applicazioni P2P ad effettuare la selezione dei peer a cui connettersi. Tale approccio, che parte dal presupposto che l'ottimizzazione del traffico P2P è di interesse sia per gli utenti che per i provider, prevede l'esposizione da parte degli ISP di informazioni di topologia di rete in maniera controllata, in modo da permettere alle applicazioni di effettuare scelte ottimali senza però svelare dettagli di implementazione generalmente ritenuti confidenziali.