[...] Toda esta muchedumbre que ves es una pobre gente sin sepultura;
aquél, el barquero Caronte; éstos, a los que lleva el agua, los sepultados.
Que no se permite cruzar las orillas horrendas y las roncas
corrientes sino a aquel cuyos huesos descansan debidamente.
Vagan cien años y dan vueltas alrededor de estas playas;
sólo entonces se les admite y llegan a ver las ansiadas aguas.
(Libro VI, La Eneida, Virgilio)
Caronte pretende ser un sistema peer-to-peer (P2P) que permita la retransmisión y recepción de flujos multimedia (audio y vídeo) en tiempo-real.
Los sistemas tradicionales de streaming poseen arquitecturas del tipo cliente-servidor. Los clientes se conectan y solicitan los contenidos multimedia que ofrezcan dichos servidores. A medida que van llegando los flujos multimedia (o streams), son reproducidos por los receptores hasta que finaliza la retransmisión. Durante la retransmisión, se puede interaccionar en mayor o menor medida con la reproducción, dependiendo del tipo de contenidos y de los servicios ofrecidos.
Un ejemplo bastante conocido de este tipo de sistemas es YouTube. En YouTube un cliente accede vía web, localiza un vídeo y solicita su visionado. El servidor comienza a enviar los flujos multimedia y cuando llegan a la máquina del usuario son presentados. El cliente puede pausar, rebobinar, avanzar o parar la reproducción.
Pero no todo está limitado al envío de vídeo, también existe una gran número de emisoras de radio que emiten por la red. En este tipo de retransmisión la interacción con el cliente es poca, éste únicamente puede parar o pausar la reproducción.
Este tipo de arquitecturas tienen las siguientes desventajas o limitaciones:
- escalabilidad: es necesario disponer de un gran ancho de banda para poder retransmitir contenidos a un alto número de clientes; las limitaciones para emitir flujos con gran calidad (tasas de compresión) serían las mismas.
- ancho de banda: se puede producir un desaprovechamiento del ancho de banda si dos (o más) clientes solicitan los mismos contenidos. En este caso, sería necesario enviar a cada uno la misma información, a no ser que se encuentren dentro de una red multicast, con el consecuente mal gasto.
- tolerancia a fallos: al ser servicios centralizados la tolerancia a fallos es menor que en un servicio distribuido.
Utilizando una red P2P, los usuarios colaborarían para retransmitirse entre si los distintos flujos multimedia. Un nodo enviaría los flujos a los distintos nodos que tenga enlazados; estos nodos a su vez lo retransmitirían a aquellos nodos hijos y así hasta que se todo el contenido se retransmita por toda la red P2P.
Las ventajas serían las siguientes:
- nodos con poco ancho de banda podrían emitir a un gran número de participantes
- mayor tolerancia a fallos al formarse una red distribuida entre todos los nodos
Aún así, el principal problema de estos sistemas sería la latencia de distribución de los flujos entre todos los nodos de la red, por lo que para entornos en los que sea imprescindible la recepción de estos contenidos en un breve espacio de tiempo (por ejemplo, una video conferencia) no sería apropiado utilizarlos.