Ponti di Ripetizione delle Web Radio: come avere un’utenza infinita

Web Radio

Ponti di Ripetizione delle Web Radio: come avere un’utenza infinita

Qualche articolo fa, nell’introdurre i concetti teorici propri delle web radio, abbiamo detto che le web radio erano rappresentabili come delle grandi torte, in cui ogni ascoltatore pretendeva una fetta e che occorreva offrire una fetta di torta di grandezza prefissata a ciascun ascoltatore.

Al di là della metafora

Da un punto di vista matematico, teorico, ma non per questo al di fuori della realtà, la tua web radio, o meglio, il server di streaming, altro non è che la radice di un grafo aciclico connesso, ovvero di un albero N-ario di altezza 1. Per chi avesse particolare interesse nella teoria dei grafi, bellissima area della matematica e dell’informatica, consiglio di partire da Wikipedia.

Un’immagine è più esplicativa di mille parole. Si ha una situazione di questo genere:

Il server rappresenterebbe la radice dell’albero, mentre i client sono le foglie.

L’altezza di questa tipologia di grafo ad albero è 1, come precedentemente detto. Il numero massimo di figli della radice, ovvero di client che possono ascoltare la radio è dato (teoricamente) da una formula matematica:

Dove N rappresenta il numero di utenti, Ba rappresenta la banda in upload disponibile e Bi identifica invece il bitrate di tramissione. Se ad esempio ho una banda in upload di 1MBPS, e imposto un bitrate di 64 kbps, mi potranno teoricamente sentire al massimo 16 persone.

Fino ad adesso abbiamo parlato di radio amatoriali, in cui tutto è costruito in casa, ed è per questo motivo che facciamo conti sulle performance, cercando ogni modo possibile per fare aumentare il numero di ascoltatori che si possono contemporaneamente avere. Il modo più semplice sembra quindi quello di aumentare la banda disponibile.

Non è assolutamente detto che la tua radio debba necessariamente sentirsi da un unica fonte, anzi è possibile creare i cosidetti Ripetitori (che in inglese si chiamano relay).

Cosa sono le Relayed Radio?

Una relayed radio è una radio che può essere ascoltata in diversi modi, organizzati in modo gerarchico come in figura:

  • Il nodo bianco è il server di streaming
  • I nodi verdi sono dei client, ma sono anche dei Relay, ovvero sono dei ripetitori di segnale, ai quali si appoggiano altri ascoltator.
  • I nodi gialli sono client, che non fungono da ripetitori.

Ogni client giallo, è promuovibile a Relay, e che una foglia è generalmente gialla, ma può anche essere verde, ovvero è un relay a cui non si è appoggiato nessuno. Questi alberi hanno altezza pari al massimo numero di relay che devi attraversare prima di arrivare alla fonte del segnale, più uno. C’è da dire che questa configurazione, se da un lato abbassa la domanda di banda imposta al server, distribuendola anche ai relay, d’altra parte aumenta il cosiddetto ritardo di propagazione.

Il vincolo del ritardo temporale

Se il computer A trasmette al computer B che ripete a sua volta al computer C che ripete a sua volta al computer D, quanto vale il ritardo di propagazione? La risposta è scontata: 4 volte il ritardo di propagazione di una trasmissione diretta, quindi potreste sentire musica con molto ritardo rispetto al secondo di partenza della trasmissione reale. D’altronde, il buon senso ci ricorda che la situazione lineare di cui sopra, non ha nessuna utilità pratica. Se Invece ipotizziamo che ogni la radice e tutti i sottorelay abbiano al massimo due ascoltatori, che possono a loro volta fare da relay, allora si crea un simpatico albero binario, e il ritardo di propagazione stavolta è dato dal logaritmo in base 2 del numero di nodi collegati.

La base del logaritmo (in questo caso 2) dipende dal numero di ascoltatori che può servire ciascun relay. Se questo numero aumenta, diminuirà il numero di relay che deve attraversare un client per potere sicuramente sentire il flusso audio. In generale possiamo quindi dire che se si riesce a distribuire bene il numero di computer che fungono da relay con il numero di computer che richiedono il flusso, allora il ritardo di propagazione cresce in funzione del logaritmo del numero dei CLIENT contemporaneamente connessi alla radio.

Possono sembrare argomenti complicati, è vero, ma sono fondamentali per una web radio che vuole ragionare in grande e comprendere i passaggi della trasmissione audio via Internet.

Le Multi-Relayed Radio

Mostriamo adesso un esempio di Radio Multi Relayed, ovvero una radio in cui i client sono serviti da più relay, in vero stile P2P.

Questo grafo somiglia a quello mostrato prima, ma ci sono delle differenze. Potrebbe sembrare un grafo ciclico, ma in realtà è un grafo orientato, come lo sono gli altri. I client non rimandano nulla ai Relay, quindi non è possibile che un relay invii qualcosa ad un altro relay tramite un client. Questa situazione è la migliore in tutti i campi, ed è di fatto lo schema del P2P. Quando scaricate qualcosa da Emule o da qualsiasi programma di File sharing, e condividete files, in fondo non siete altro che dei relay, acquisite qualcosa e ricambiate dando qualcos’altro, e siete in grado di ricevere qualcosa da più relay in contemporanea.

Questo schema a connessioni multiple è la soluzione a tutti i problemi, in quanto si partiziona il carico di banda nel maggior numero di computer possibili. Tutto ciò sembra la panacea di tutti i mali, ma in realtà questo schema è praticamente impossibile da implementare in modo soddisfacente.

Il motivo è semplice, supponiamo di essere un semplice client, che vuole sentire una radio che mi permette l’ascolto passando da 4 relay, dato che i relay sono tutti occupati ai livelli superiori. Ho quindi ho un ritardo pari a 4. Ad un certo punto, si libera uno spazio su un relay al livello 2, e quindi me ne posso appropiare. A questo punto cosa succede? I ritardi di trasmissione mi faranno arrivare parti dello stesso flusso, sfasati di una certa quantità che è data dalla differenza dei ritardi stessi, rovinando tutto.

Anche qualora fosse possibile davvero segmentare il flusso  non si potrebbe non essere vincolati dai diversi ritardi. Ecco perché in questo ambito, purtroppo, c’è ancora molto da lavorare.

Articolo a cura di Fabrizio Mondo
www.fabriziomondo.com