ES2360647T3 - Método y sistema para la diseminación del contenido igual a igual. - Google Patents

Método y sistema para la diseminación del contenido igual a igual. Download PDF

Info

Publication number
ES2360647T3
ES2360647T3 ES06025429T ES06025429T ES2360647T3 ES 2360647 T3 ES2360647 T3 ES 2360647T3 ES 06025429 T ES06025429 T ES 06025429T ES 06025429 T ES06025429 T ES 06025429T ES 2360647 T3 ES2360647 T3 ES 2360647T3
Authority
ES
Spain
Prior art keywords
content
host computer
host
loading
download
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES06025429T
Other languages
English (en)
Inventor
Sachin Kumar Dr. Agarwal
Jatinder Pal Dr. Singh
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Deutsche Telekom AG
Original Assignee
Deutsche Telekom AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Deutsche Telekom AG filed Critical Deutsche Telekom AG
Application granted granted Critical
Publication of ES2360647T3 publication Critical patent/ES2360647T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1068Discovery involving direct consultation or announcement among potential requesting and potential source peers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/1082Resource delivery mechanisms involving incentive schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

Un método para la distribución de datos de contenidos a una pluralidad de ordenadores anfitriones (102a a 102e) cada uno de los cuales se adapta para funcionar como un ordenador anfitrión de carga de contenidos o descarga de contenidos, en el que la pluralidad de ordenadores anfitriones (102a a 102e) forma una red igual a igual (103), dicho método que comprende los pasos de: a) Proporcionar al menos una parte de los datos de contenidos por al menos un ordenador anfitrión de carga de contenidos (102a) que pertenece a dicha pluralidad de ordenadores anfitriones (102a a 102e); b) Seleccionar en el ordenador anfitrión de carga de contenidos (102a) un ordenador anfitrión de descarga de contenidos (102b) usando un parámetro ponderado que se determina en base a los datos de contenidos que se han enviado desde otros ordenadores anfitriones (102b a 102e) incluyendo el ordenador anfitrión de descarga de contenidos seleccionado (102b) al ordenador anfitrión de carga de contenidos (102a); b1) Anunciar la parte o partes disponibles de los datos de contenidos desde el ordenador anfitrión de carga de contenidos (102a) al ordenador anfitrión de descarga de contenidos (102b); b2) Enviar un bloque de contenidos que incluye la parte de los datos de contenidos solicitados por el ordenador anfitrión de descarga de contenidos seleccionado (102b) desde el ordenador anfitrión de carga de contenidos (102a) al ordenador anfitrión de descarga de contenidos seleccionado (102b), y c) Seleccionar en un ordenador anfitrión de descarga de contenidos (102c) un ordenador anfitrión de carga de contenidos (102d); c1) Solicitud de al menos una parte de los datos de contenidos por el ordenador anfitrión de descarga de contenidos (102c) desde el ordenador anfitrión de carga de contenidos seleccionado (102d); c2) Enviar, si está disponible, un bloque de contenidos que incluye la parte de los datos de contenidos solicitados por el ordenador anfitrión de descarga de contenidos seleccionado (102c) desde el ordenador anfitrión de carga de contenidos (102d) al ordenador anfitrión de descarga de contenidos, en el que el tamaño del bloque de contenidos se ha ajustado de una manera predeterminada

Description

Campo de la invención
La presente invención se refiere a un método y un sistema de comunicación que permite la comunicación entre ordenadores anfitriones, llamados iguales, que cooperan para formar una red igual a igual. La comunicación entre iguales puede relacionarse con, por ejemplo, la diseminación de los datos o el flujo de datos multimedia desde un igual fuente a otros iguales en la red igual a igual. En particular, la invención se puede usar para flujo de datos de audio y/o vídeo en vivo y en escenarios de descarga de contenidos bajo demanda. También se puede usar en comunicación en vivo multicamino, tal como una sala de charla de múltiples clientes audio/visual.
Antecedentes de la invención
El flujo de datos multimedia desde un servidor en Internet a una pluralidad de clientes a través de conexiones unidifusión tiene una limitación inherente debida a un techo de ancho de banda de las conexiones de red en el servidor.
No obstante, el flujo de datos multimedia en un sistema igual a igual alivia esta limitación permitiendo a un usuario recibir contenidos multimedia desde cualquier igual que tiene contenido en lugar de limitar la capacidad de diseminación de contenidos solamente al servidor.
Por lo tanto, los sistemas igual a igual (p2p) han llegado a ser cada vez más populares para aplicaciones como compartición de archivos y flujo de datos multimedia. Varios de tales sistemas en uso hoy en día emplean distintos protocolos y mecanismos para la diseminación de los datos entre los iguales.
A partir de la EP 1 427 170 A2 se conoce un sistema, método y arquitectura para la transferencia de archivos en una red igual a igual, en el que la diseminación de archivos se inicia por la publicación de metadatos de archivos. Habiendo recibido los metadatos, cada nodo determina si desea recibir el archivo asociado. Si desea recibir el archivo, el nodo o nodos pertinentes utilizan un modelo de extracción para solicitar los contenidos de los archivos desde los vecinos respectivos. Cada nodo que tiene o recibe un archivo advierte de su posesión del archivo de manera que otros nodos entonces puedan obtener el fichero de estas fuentes secundarias. Un nodo puede recibir simultáneamente de manera considerable un archivo a través de la descarga del flujo de datos desde un nodo particular y servir ese mismo archivo a través de cargar a otro nodo, en el que se usa un identificador de generación preferentemente para impedir a dos nodos, cada uno que tiene la misma parte del archivo, intentar recuperar el resto del archivo desde el otro.
Los participantes u ordenadores anfitriones en un sistema p2p son típicamente heterogéneos tanto en su tasas de bit de carga como de descarga, también llamados anchos de banda de carga y descarga. Las conexiones DSL Locales, por ejemplo, tienden a tener un mayor ancho de banda de enlace descendente que ancho de banda de enlace ascendente. Por ejemplo, un usuario conectado a un interfaz de banda ancha DSL puede usar un ancho de banda de descarga de 1Mbps y un ancho de banda de carga de 128 kbps. De esta manera, para el flujo de datos multimedia los ordenadores anfitriones en Internet pueden necesitar enviar cooperativamente contenidos multimedia a un igual de recepción debido a la carencia de suficiente ancho de banda de carga para encajar la velocidad de reproducción de la secuencia multimedia.
A diferencia del contenido bajo demanda, las secuencias de vídeo en vivo tienen una característica inherente de utilidad de bloques de datos dependiente del tiempo. Además, a diferencia de la compartición de archivos de datos, un igual de recepción debería ser capaz de recibir bloques de secuencia contiguos que están siendo reproducidos por el ordenador anfitrión. De ahí que un esquema como Bittorrent descrito en B. Cohen, “Los incentivos crean la robustez en bittorrent”, actas del 1er. Taller sobre Economía de Sistemas Igual a Igual, junio de 2003, que realiza intercambio de bloques de datos aleatorios puede no funcionar bien para flujo de datos multimedia.
Varias soluciones multidifusión p2p, por ejemplo como se propone en V. Padmanabhan y otros, “Distribuyendo contenidos multimedia de flujo de datos usando conexión en red cooperativa,” ACM NOSSDAV, 2002, se basan en construir un árbol de superposición arraigado en la fuente y la diseminación del contenido a todos los iguales en el árbol. No obstante tales planteamientos afrontan los retos debidos a las desconexiones causadas por el abandono de los iguales de la topología. Varias medidas para solucionar el problema a través de establecer múltiples caminos y múltiples árboles se han propuesto en trabajos como J. Silber, S. Sahu, J. Singh, y Z. Liu, “Incrementando los árboles de superposición para resistencia a fallos”, Conferencia Global de Telecomunicaciones del IEEE 2004.
Los mecanismos basados en chismes han sido investigados para su utilidad para diseminación de datos de flujo de datos multimedia igual a igual en un sistema igual a igual. Estos implican la propagación de los bloques multimedia en una topología, de una manera similar al esparcimiento de un virus infeccioso en una población. Como tal patrón de chismes es seguido por los ordenadores anfitriones, el bloque de datos se propaga finalmente a todos los iguales en la topología. La conformidad del protocolo basado en chismes con las aplicaciones de flujo de datos multimedia se ha tratado en S. Verma, y W. Ooi, “Controlando el patrón de infección del protocolo basado en chismes usando diseminación de control adaptativa,” Conferencia Internacional en Sistemas Informáticos Distribuidos, 2005.
En la Patente Nº US 6.980.518 B1 Sun y otros describen un sistema de mensajería multidifusión que emplea un método basado en chismes para la recuperación de los mensajes perdidos. Los mecanismos de recuperación implican solicitar la retransmisión de los mensajes perdidos usando chismes.
Sumario de la invención
Es un objeto de la presente invención proporcionar un método y un sistema de comunicación que aumente la diseminación de contenidos a ciertos ordenadores anfitriones en una red igual a igual.
Es un aspecto de la invención asociar iguales que cooperan en entregar datos de contenidos a otros iguales con mayores velocidades de descarga de secuencias comparado con iguales que no distribuyen o distribuyen menos sus datos de contenidos a otros iguales.
Es otro aspecto adicional de la invención variar la velocidad de descarga de iguales proporcionalmente a los datos de contenidos útiles cargados por los iguales. Este planteamiento hace del sistema resistente a iguales maliciosos o interesados que de otro modo pueden descargar los datos de contenidos a expensas de los recursos acumulativos de los sistemas propuestos sin aportar de nuevo al sistema.
El problema técnico mencionado anteriormente se resuelve mediante un método para entrega de datos de contenidos a una pluralidad de ordenadores anfitriones cada uno de los cuales se adapta para funcionar como un ordenador anfitrión de carga de contenidos y/o descarga de contenidos, en el que la pluralidad de ordenadores anfitriones forma una red igual a igual.
Se debería señalar que los datos de contenidos representan, por ejemplo, un flujo de datos de vídeo y/o audio que inicialmente se puede almacenar o generar en tiempo real en una fuente que puede pertenecer a la pluralidad de ordenadores anfitriones. Además, el término “ordenador anfitrión de carga de contenidos” define un ordenador anfitrión que se adapta a cargar, es decir enviar o entregar, al menos una parte de los datos de contenidos a un ordenador anfitrión que funciona como un ordenador anfitrión de descarga de contenidos. En esta conexión el término “ordenador anfitrión de descarga de contenidos” define un ordenador anfitrión que se adapta a descargar, es decir recibir una parte de los datos de contenidos desde un ordenador anfitrión de carga de contenidos.
El método comprende los siguientes pasos:
a) Proporcionar al menos una parte de los datos de contenidos por al menos un ordenador anfitrión de carga de contenidos que pertenece a dicha pluralidad de ordenadores anfitriones;
b) Seleccionar, en el ordenador anfitrión de carga de contenidos, un ordenador anfitrión de descarga de contenidos usando un parámetro de ponderación; por ejemplo un número aleatorio, que se determina en base a los datos de contenidos que se han enviado desde otros ordenadores anfitriones incluyendo el ordenador anfitrión de descarga de contenidos seleccionado al ordenador anfitrión de carga de contenidos;
b1) Anunciar la parte o partes disponibles de los datos de contenidos desde el ordenador anfitrión de carga de contenidos al ordenador anfitrión de descarga de contenidos seleccionado;
b2) Enviar un bloque de contenidos que incluya la parte de los datos de contenidos solicitados por el ordenador anfitrión de descarga de contenidos seleccionado desde el ordenador anfitrión de carga de contenidos al ordenador anfitrión de descarga de contenidos seleccionado, y
c) Seleccionar en un ordenador anfitrión de descarga de contenidos un ordenador anfitrión de carga de contenidos;
c1) Provocación de al menos una parte de los datos de contenidos por el ordenador anfitrión de descarga de contenidos desde el ordenador anfitrión de carga de contenidos seleccionado;
c2) Enviar, si está disponible, un bloque de contenidos que incluya la parte de los datos de contenidos solicitados por el ordenador anfitrión de descarga de contenidos seleccionado desde el ordenador anfitrión de carga de contenidos al ordenador anfitrión de descarga de contenidos, en donde el tamaño del bloque de contenidos se ha ajustado de una manera predeterminada.
Los pasos b) a b2) definen una fase de comunicación basada en empuje en la que antes de enviar los datos de contenidos a un ordenador anfitrión de descarga de contenidos solicitante se transmite una información de la cantidad de datos de contenidos almacenados en el ordenador anfitrión de carga de contenidos a un ordenador anfitrión de descarga de contenidos seleccionado. Los pasos c) a c2), no obstante, definen una fase de comunicación basada en extracción, en la que un ordenador anfitrión de descarga de contenidos solicita directamente los datos de contenidos desde un ordenador anfitrión de carga de contenidos seleccionado.
El problema técnico mencionado anteriormente también se resuelve mediante un sistema de comunicación como se define por la reivindicación 14.
En una realización preferente los datos de contenidos comprenden un flujo de datos multimedia los datos del cual se entrega en forma de bloques usando los paquetes de la capa de transporte predeterminados, por ejemplo paquetes TCP (Protocolo de Control de Transporte) o UDP (Protocolo de Datagrama de Usuario). Con otras palabras un flujo de datos multimedia comprende una gran cantidad de datos de contenidos, por ejemplo 100 Megabyte (MB) que se dividen, por ejemplo, en 100 bloques cada uno que tiene un tamaño de 1024 Kilobyte (kB). Se debería señalar que la cantidad de datos incluidos en una “parte de los datos de contenidos” puede pero no necesita corresponder a la cantidad de datos cubiertos por un bloque de contenidos.
Para aumentar el ancho de banda de descarga de los ordenadores anfitriones de descarga de contenidos durante la fase de comunicación basada en empuje el paso b) comprende los siguientes pasos:
-
Generar un vector en el ordenador anfitrión de carga de contenidos, en donde el vector incluye un número de elementos cada elemento que representa la cantidad de datos de contenidos recibidos desde un ordenador anfitrión respectivo que ha enviado datos de contenidos al ordenador anfitrión de carga de contenidos;
-
Normalizar el vector dividiendo cada elemento por la suma de todos los elementos;
-
Generar una función de distribución de probabilidad acumulativa a partir de los elementos del vector normalizado;
-
Generar un número aleatorio entre 0 y 1;
-
Elegir el intervalo definido por la función de distribución de probabilidad acumulativa en que el número aleatorio cae y seleccionar el número aleatorio ponderado que se encuentra entremedias o exactamente en el valor más pequeño o el más grande del intervalo elegido;
-
Asociar el número aleatorio ponderado con el elemento del vector normalizado, y
-
Seleccionar el ordenador anfitrión de descarga de contenidos que corresponde al elemento asociado.
Con tal método la velocidad de descarga o el ancho de banda de descarga de los ordenadores anfitriones que funcionan como ordenadores anfitriones de descarga de contenidos se puede ajustar dinámicamente en base a todos los datos de contenidos descargados por los ordenadores anfitriones.
Para garantizar que un ordenador anfitrión de descarga de contenidos recibe los datos de contenidos íntegros solicitados los pasos b) a c2) se repiten en tiempos predeterminados hasta que los datos de contenidos enteros se han entregado al ordenador anfitrión de descarga de contenidos.
Para variar dinámicamente el ancho de banda de descarga de los ordenadores anfitriones de descarga de contenidos durante la fase de comunicación basada en extracción el paso b2) y/o el paso c2) comprende el paso de ajustar el tamaño de un bloque de contenidos para ser enviado en base a la cantidad de datos de contenidos recibidos desde los otros ordenadores anfitriones en el ordenador anfitrión de carga de contenidos.
En particular el paso de ajustar el tamaño del bloque de contenidos comprende los siguientes pasos:
-
Generar un vector en el ordenador anfitrión de carga de contenidos que ha recibido un mensaje de Petición de Envío desde un ordenador anfitrión de descarga de contenidos, en el que el vector incluye una serie de elementos cada elemento que representa la cantidad de datos de contenidos recibidos desde un ordenador anfitrión respectivo que ha enviado los datos de contenidos al ordenador anfitrión de carga de contenidos;
-
Normalizar el vector dividiendo cada elemento por la suma de todos los elementos;
-
Generar una función de distribución de probabilidad acumulativa de los elementos del vector normalizado;
-
Elegir el elemento del vector normalizado que se asocia con el ordenador anfitrión de descarga de contenidos; y
-
Enviar al ordenador anfitrión de descarga de contenidos un bloque de contenidos con un tamaño que es una función proporcional del elemento elegido del vector normalizado y un tamaño de bloque máximo predeterminado.
En una realización preferente se selecciona un ordenador anfitrión de carga de contenidos en la fase de comunicación basada en extracción aleatoriamente por el ordenador anfitrión de descarga de contenidos.
La información en la parte o partes actuales de los datos de contenidos almacenados en un ordenador anfitrión de carga de contenidos y/o un ordenador anfitrión de descarga de contenidos comprende un puntero de contenidos.
Para permitir a un ordenador anfitrión de descarga de contenidos determinar durante la fase de comunicación basada en empuje determinar si se necesita o no la parte disponible anunciada de los datos de contenidos el paso b1) consta de los siguientes pasos:
-
Anunciar el contenido disponible desde el ordenador anfitrión de carga de contenidos al ordenador anfitrión de descarga de contenidos seleccionado en términos de un puntero de contenidos, y
-
Comparar en el ordenador anfitrión de descarga de contenidos el puntero de contenidos recibido con su puntero de contenidos local para decidir si es necesario o no el contenido disponible anunciado.
Para permitir a un ordenador anfitrión de carga de contenidos determinar durante la fase de comunicación basada en extracción determinar si está disponible o no la parte solicitada de los datos de contenidos el paso c1) consta de los siguientes pasos:
Enviar por el ordenador anfitrión de descarga de contenidos su puntero de contenidos local al ordenador anfitrión de carga de contenidos seleccionado, y
Comparar en el ordenador anfitrión de carga de contenidos el puntero de contenidos local recibido con su puntero para decidir si está disponible o no la parte solicitada de contenidos.
Es de señalar que un puntero de contenidos especifica a) el byte de inicio de los datos de contenidos el cual es necesario en un igual si el mensaje a ser enviado es un mensaje de protocolo o b) el byte de inicio de los datos en una secuencia multimedia completa o archivo de datos si el mensaje es un mensaje de datos.
El método propuesto anteriormente puede ralentizar la dinámica de la variación del ancho de banda de descarga asociado a los ordenadores anfitriones de descarga de contenidos según pasa el tiempo. Esto es un artefacto del comportamiento de descarga asíncrono de los ordenadores anfitriones porque los ordenadores anfitriones pueden unirse o abandonar la red igual a igual aleatoriamente en distintos momentos. A continuación, los iguales que participan y cargan contenidos a otros iguales gana mucho “favor” o crédito en el esquema proporcional en modo de iguales, bloqueando nuevos iguales. La dinámica de ajustar el ancho de banda de descarga de los ordenadores anfitriones de descarga de contenidos ajustando, por ejemplo el tamaño de los bloques de contenidos para ser entregados a los ordenadores anfitriones de descarga de contenidos debería ser “rápida” para cambiar el ancho de banda de descarga rápidamente según la red de igual a igual evoluciona con el tiempo.
Por lo tanto se designa un mecanismo de deterioro de marcha atrás para acelerar la dinámica de ajustar el ancho de banda de descarga. Esto se logra multiplicando los elementos del vector normalizado almacenado en el ordenador anfitrión de carga de contenidos con un factor de deterioro cada unidad de tiempo y en donde los elementos del vector normalizado se actualizan cada vez que se reciben datos de contenidos adicionales en el ordenador anfitrión de carga de contenidos.
En una realización preferente los datos de contenidos que representan por ejemplo una película completa se almacenan o generan inicialmente en tiempo real en un ordenador anfitrión fuente que puede pertenecer a la pluralidad de ordenadores anfitriones. Al menos un parte de los datos de contenidos se envían a al menos alguno de la pluralidad de ordenadores anfitriones. Normalmente, se almacenan distintas partes de los datos de contenidos en ordenadores anfitriones separados en momentos distintos.
Para seguir la pista de los ordenadores anfitriones en la red igual a igual la información de cada ordenador anfitrión se almacena por ejemplo en un rastreador. La información comprende entre otras cosas la dirección de cada ordenador anfitrión así como la parte o partes actuales de los datos de contenidos almacenados en el ordenador anfitrión respectivo, es decir el puntero de contenidos. Cada ordenador anfitrión se adapta para recuperar la información almacenada.
Si un nuevo ordenador anfitrión se une a la red igual a igual se ajusta su tamaño de bloque máximo o su ancho de banda de carga máximo se ajusta para ser usado para cargar los datos de contenidos.
El problema técnico mencionado anteriormente se resuelve además mediante un sistema de comunicación para la distribución de los datos de contenidos en una red igual a igual la cual es por ejemplo una red de superposición. El sistema comprende una pluralidad de ordenadores anfitriones que forman una red igual a igual, cada ordenador anfitrión que se adapta para carga y/o descargar al menos una parte de los datos de contenidos que van a ser entregados.
Cada ordenador anfitrión adaptado a carga al menos una parte de los datos de contenidos comprende medios de almacenaje para almacenar al menos una parte de los datos de contenidos que van a ser entregados; los primeros medios de recepción para recibir un mensaje de Petición de Envío desde un ordenador anfitrión de descarga de contenidos, los primeros medios de control para seleccionar un ordenador anfitrión de descarga de contenidos usando un parámetro ponderado, por ejemplo el número aleatorio, en base a los datos de contenidos que se han enviado desde otros ordenadores anfitriones que incluyen el ordenador anfitrión de descarga de contenidos al ordenador anfitrión respectivo, los medios de generación para generar un bloque de contenidos con un tamaño de bloque ajustable, el bloque de contenidos que incluye la parte de los datos de contenidos solicitados por el ordenador anfitrión de descarga de contenidos seleccionado, los primeros medios de transmisión que se adaptan para anunciar la parte o partes disponibles de los datos de contenidos almacenados en los medios de almacenamiento al ordenador anfitrión de descarga de contenidos seleccionado y para enviar un bloque de contenidos con un tamaño de bloque ajustable al ordenador anfitrión de descarga de contenidos, el bloque de contenidos que incluye la parte de los datos de contenidos solicitados por el ordenador anfitrión de descarga de contenidos.
Cada ordenador anfitrión adaptado para descargar al menos una parte de un contenido comprende segundos medios de almacenamiento para almacenar al menos una parte de los datos de contenidos recibidos desde al menos un ordenador anfitrión de carga de contenidos, segundos medios de control para seleccionar un ordenador anfitrión de carga de contenidos, segundos medios de transmisión que se adaptan para enviar un mensaje de Petición de Envío para al menos una parte de los datos de contenidos al ordenador anfitrión de carga de contenidos seleccionado, y segundos medios de recepción adaptados para recibir un bloque de contenidos desde el ordenador anfitrión de carga de contenidos que incluye la parte de los datos de contenidos solicitados por el ordenador anfitrión de descarga de contenidos seleccionado. En la descripción detallada los medios de recepción se llaman también “MiOyente”, mientras que los medios de transmisión se llaman también “MiRemitente”.
Adicionalmente, cada ordenador anfitrión puede constar de medios de conversión para la serialización de paquetes que se dispensan desde un ordenador anfitrión de carga de contenidos y para la deserialización de paquetes que llegan al ordenador anfitrión de carga de contenidos a una tabla para generar claves.
En una realización preferente se asocia un puntero de contenidos con los datos de contenidos almacenados en cada ordenador anfitrión de carga y ordenador anfitrión de descarga de contenidos para indicar la parte o partes actuales de los datos de contenidos almacenadas allí dentro. Cada ordenador anfitrión de carga de contenidos además comprende medios de comparación para determinar si está disponible la parte de los datos de contenidos solicitados por un ordenador anfitrión de descarga de contenidos, mientras que cada ordenador anfitrión de descarga de contenidos comprende medios de comparación para determinar si es necesaria la parte de los datos de contenidos anunciados por un ordenador anfitrión de carga de contenidos.
En una realización preferente los primeros medios de control del ordenador anfitrión de carga de contenidos se adaptan para ejecutar el método de las reivindicaciones 3, 6 y/o 10.
Breve descripción de los dibujos
La invención, junto con sus objetos y las ventajas de la misma, se puede comprender mejor con referencia a la siguiente descripción tomada en conjunto con los dibujos anexos en los que:
La Fig. 1 muestra una red de superposición igual a igual, La Fig. 2 muestra un diagrama de estado de un ordenador anfitrión, La Fig. 3 muestra un diagrama de bloques esquemático de un ordenador anfitrión, La Fig. 4 muestra dos tipos de paquetes de capa de transporte para transmitir a través de la red de la Fig. 1, La Fig. 5 muestra un diagrama de flujo del funcionamiento de un ordenador anfitrión conectado a la red de la Fig. 1, La Fig. 5A muestra un diagrama de flujo del funcionamiento de una fuente conectada a la red de la Fig. 1, La Fig. 6 muestra un diagrama de tiempo de una diseminación de contenidos basada en empuje, La Fig. 7 muestra un diagrama de tiempo de una diseminación de contenidos basada en extracción, La Fig. 8A muestra un diagrama de acuerdo con una simulación que representa la diferencia en las velocidades de descarga de los ordenadores anfitriones cooperativos y los ordenadores anfitriones no cooperativos,
La Fig. 8B y 8C muestran diagramas que representan el tiempo de descarga media de los ordenadores anfitriones cooperativos y no cooperativos.
Descripción detallada de la invención
Un aspecto del sistema propuesto es entregar una copia del contenido de audio o vídeo a múltiples ordenadores anfitriones conectados. El contenido de audio o vídeo se genera sobre la marcha (en vivo) o se almacena inicialmente en uno de estos ordenadores anfitriones, a partir de ahora conocidos como la fuente, aludiendo al hecho de que el contenido se proporciona inicialmente por este ordenador. El sistema propuesto busca diseminar el contenido a múltiples ordenadores anfitriones usando la menor cantidad de coordinación previa entre la fuente y los ordenadores anfitriones que descargan los contenidos, a partir de ahora conocidos como iguales. Además, el sistema propuesto configura la coordinación en “tiempo real” entre varios ordenadores anfitriones que participan en la secuencia para aliviar la fuente de tener que suministrar una copia de la secuencia a cada igual separadamente. Los ordenadores anfitriones coordinan las partes de intercambio de la secuencia entre ellos mismos y de esta manera se evita completamente el requerimiento de alto ancho de banda en la fuente.
El protocolo de flujo de datos implementado usa un algoritmo anti entropía para difundir los bloques de la secuencia entre varios iguales de la red de superposición. Los bloques de difusión suponen que la información se propaga en la red muy similar a como un virus se difunde en una población o un rumor se difunde en una muchedumbre. Este algoritmo anti entropía (algunas veces llamado algoritmo “de chismes”) funciona empujando/extrayendo bloques de la secuencia aleatoriamente sobre lo almacenado en otros iguales. Este es un algoritmo completamente distribuido y asíncrono y cierto para el modelo p2p, no depende de ningún gestor de contenidos centralizado.
La Fig. 1 muestra un sistema de comunicación ejemplar 100 que comprende un ordenador anfitrión fuente 101 y cinco ordenadores anfitriones 102a, 102b, 102c, 102d, y 102e llamados iguales que forman una red igual a igual de superposición 103 de acuerdo con la presente invención. El ordenador anfitrión fuente 101 puede generar la secuencia de datos multimedia de un contenido de audio y/o vídeo que va a ser distribuido entre los ordenadores anfitriones ejemplares 102a, 102b, 102c, 102d, y 102e “sobre la marcha”. Alternativamente, la secuencia de datos multimedia se puede almacenar o “almacenar en caché” inicialmente en el ordenador anfitrión fuente 101. En un escenario ejemplar se captura una secuencia de contenidos en vivo usando un convertidor analógico a digital por ejemplo, una videocámara o un micrófono 104 que se asocia con el ordenador anfitrión fuente 101.
La terminología igual usada para los ordenadores anfitriones 102a, 102b, 102c, 102d, y 102e es sinónimo de una entidad cooperativa, que para la presente invención tiene por objeto descargar y reproducir colectivamente la secuencia de audio/vídeo en tiempo real.
La red p2p de superposición 103 conecta los ordenadores anfitriones 101, 102a, 102b, 102c, 102d, y 102e participando en el sistema de flujo de datos p2p. Los ordenadores anfitriones 101, 102a, 102b, 102c, 102d, y 102e están completamente conectados en el sentido que cualquier ordenador anfitrión puede descargar la secuencia de datos multimedia completa o partes de la secuencia de datos multimedia desde cualquier otro ordenador anfitrión en la red p2p 103. Tal conectividad se puede lograr conectando cada ordenador anfitrión a Internet, por ejemplo. Implícito en esta suposición está la direccionabilidad única de cada ordenador anfitrión es decir, cada ordenador anfitrión tiene un identificador o dirección única, por ejemplo la dirección IP de manera que cada ordenador anfitrión pueda comunicar con otro ordenador anfitrión particular especificando su dirección única. Aunque Internet es un ejemplo representativo para probar la conectividad entre los ordenadores anfitriones, el sistema propuesto es igualmente útil en cualquier red de datos con las características antes mencionadas en tanto en cuanto pueda soportar una velocidad de flujo de datos constante en los iguales, haciéndolos capaces de reproducir la secuencia de datos multimedia en tiempo real es decir, concurrentemente con la recepción de la secuencia, después de tener un pequeño almacenamiento temporal.
El ordenador anfitrión fuente 101 se conecta a la red p2p de superposición 103 a través de un interfaz de banda ancha capaz de transportar al menos una copia de la secuencia de datos multimedia en la red p2p 103. Cada uno de los iguales 102a, 102b, 102c, 102d, y 102e se adapta para recibir, es decir descargar una parte de la secuencia de datos multimedia desde los otros iguales 101, 102a, 102b, 102c, 102d, y 102e en lugar de solo apoyarse en el ordenador anfitrión fuente 101 para suministrar el contenido. Las conexiones entre los iguales 101, 102a, 102b, 102c, 102d, y 102e en la red p2p 103 son variables con el tiempo con los iguales que contactan entre ellos aleatoriamente en búsqueda de los bloques requeridos de la secuencia de datos multimedia. Las flechas mostradas en la Fig. 1 están por lo tanto cambiando con el tiempo.
Los iguales 101, 102a, 102b, 102c, 102d, y 102e mostrados en la Fig. 1 se pueden esparcir a través de un área geográfica amplia. Además, no hay entidad centralizada que coordine el ordenador anfitrión fuente 101 y 101, 102a, 102b, 102c, 102d, y 102e participando en el sistema de comunicación 100. La arquitectura del escenario en la Fig. 1 es por lo tanto escalable y robusta contra cualquier punto de fallo central o problemas de implosión en un ordenador anfitrión central.
Adicionalmente, se supone que allí existe un dispositivo especial llamado rastreador que puede residir en cualquiera de los ordenadores anfitriones 101, 102a, 102b, 102c, 102d, o 102e. El rastreador mantiene una lista de todos los iguales que participan en la red p2p 103 para cargar y/o descargar partes de la secuencia de datos multimedia. Este rastreador se configura por el ordenador anfitrión fuente 101 en el comienzo del flujo de datos multimedia.
Los ordenadores anfitriones 101, 102a, 102b, 102c, 102d, o 102e son capaces de cargar concurrentemente partes de la secuencia de datos multimedia a distintos iguales dependiendo de su ancho de banda de carga máximo. Los iguales pueden actuar de esta manera como servidores también llamados ordenadores anfitriones de carga de contenidos mientras que participan en la red p2p 103 para distribuir los datos de contenidos. Esta propiedad subraya el valor fundamental igual a igual: agrupar el ancho de banda de servicio de cada igual para la diseminación de contenidos. Los ordenadores anfitriones 101, 102a, 102b, 102c, 102d, o 102e intercambian los bloques de la secuencia de datos multimedia entre ellos en lugar de descargar la secuencia de datos multimedia desde el ordenador anfitrión fuente 101 solamente como en un modelo cliente servidor convencional.
Estas transacciones entre iguales que participan se controlan aleatoriamente con los iguales que descargan bloques contiguos de la secuencia de datos multimedia solicitando los bloques de la secuencia de datos requerida de los distintos iguales para reconstruir la secuencia de datos multimedia completa. No toda transacción provoca una descarga de bloques exitosa, sino que el efecto global es la descarga de bloques contiguos de la secuencia de datos multimedia en cada igual 102a, 102b, 102c, 102d, o 102e que participa en la red de superposición 103.
La red de superposición 103 de la Fig. 1 es altamente dinámica y no coherente debido a las siguientes razones:
1.
Tiempos de vida de iguales impredecibles: Los iguales pueden “abandonar” la red de superposición 103 en cualquier momento, es decir, parar de participar en el esfuerzo de flujo de datos p2p.
2.
Ancho de banda del igual que varía: El ancho de banda disponible para la carga de al menos partes de la secuencia de datos multimedia para los otros iguales y para la descarga de la secuencia de datos multimedia desde otros iguales varía con el tiempo a través de cada igual. Esto es natural considerando la compartición del ancho de banda entre las aplicaciones del ordenador (HTTP, FTP etc., por ejemplo) así como la multiplexación estadística de los paquetes de datos en las redes de datos subyacentes.
3.
Heterogeneidad de los iguales: Todos los iguales pueden tener distinta conectividad subyacente para la red de superposición. Por ejemplo, en el caso de Internet, algunos iguales tiene DSL asimétrico, otros tiene conectividad T1 o T3, mientras que algunos otros tienen conectividad inalámbrica (GPRS, 3G) etc. Cada una de estas tecnologías de conectividad de red subyacente proporciona distinto ancho de banda, latencia, y flujo de datos a la aplicación p2p superpuesta. Además, la potencia de procesamiento de los iguales también varía.
La Fig. 2 muestra los estados que puede asumir el ordenador anfitrión fuente 101 y los iguales 102a, 102b, 102c, 102d, y 102e mientras que se ejecuta el método de la presente invención de una manera distribuida y asíncrona, así como las transacciones entre estos estados.
Un igual, por ejemplo el igual 102a, está en el estado fuera de línea 201a cuando no está activamente implicado en descargar, cargar o participar de otro modo en la distribución de la secuencia de datos multimedia; en otras palabras, el igual 102a está fuera de línea. Un igual entra en el estado de puesta en marcha 201b cuando se une a la red p2p de superposición 103 para participar en la distribución de la secuencia de datos multimedia. La transición 202a caracteriza este caso.
El estado 201b se caracteriza en particular por el descubrimiento del igual y la fuente, la inicialización de la aplicación, por ejemplo reservando recursos como el ancho de banda para la aplicación, el recorrido del cortafuegos NAT, etc. En caso del ordenador anfitrión fuente 101, el estado 201b también implica configurar un rastreador, que se supone que hace la reserva manteniendo alrededor de cada igual que participa en la red de superposición 103 y descargando la secuencia de datos multimedia.
Durante la fase de puesta en marcha se configuran varios parámetros numéricos que controlan correctamente el algoritmo propuesto. Estos parámetros incluyen:
1.
Tiempo de espera para hilar los chismes: Este es el tiempo entre los mensajes de anuncio sucesivos enviados desde un ordenador anfitrión de carga de contenidos a un ordenador anfitrión de descarga de contenidos seleccionado. Este parámetro se elabora en la descripción de la Fig. 3. Este parámetro se especifica en milisegundos. Su valor se puede aumentar o disminuir para ralentizar o acelerar la velocidad de descarga de la secuencia respectivamente, sujeto a las restricciones de disponibilidad de la secuencia y red de la red de superposición.
2.
Tamaño de Bloque Máximo: Este es el tamaño del bloque único más grande que transporta una cantidad predeterminada de datos de la secuencia de datos multimedia transferido desde un igual a otro cuando se transmiten los bloques de la secuencia. El tamaño del bloque se especifica en kilobyte (kB).
3.
Ancho de Banda de Carga: Este parámetro es el límite superior en la cantidad de ancho de banda de carga dedicado para cargar los bloques de la secuencia para los iguales solicitantes. El límite superior fuerza a un control sobre el sistema propuesto de manera que los usuarios pueden consumar otras tareas de red tales como la navegación de la web, por ejemplo sin afectar adversamente su experiencia debido al apropiamiento ilícito del enlace del ancho de banda de carga de sus conexiones de red por el sistema propuesto.
Un igual introduce el estado de “Carga/Descarga En Línea” 201c a través de la transición 202b que ocurre en la terminación de la fase de puesta en marcha. Durante el estado 201c los bloques de datos de la secuencia de datos multimedia se cargan desde el ordenador anfitrión fuente 101 a al menos uno de los iguales 102a, 102b, 102c, 102d,
o 102e y se descargan y/o cargan a y desde los iguales, respectivamente como se describirá posteriormente en detalle. Es de señalar que el ordenador anfitrión fuente 101 solamente carga los bloques de datos pero no descarga los bloques de datos desde los iguales 102a, 102b, 102c, 102d, o 102e que participan en el sistema de flujo de datos, de ahí que introduce el estado único de carga en línea 201d después de que se ha completado el estado 201b.
En el caso de una secuencia de datos multimedia de longitud fija por ejemplo una película, cada igual completará finalmente la descarga de la película completa, finalizando de esta manera con una copia almacenada en caché del archivo de la secuencia de datos multimedia entera justo como el ordenador anfitrión fuente 101. Estos iguales pueden decidir actuar altruistamente como una fuente y cargar el archivo entero a otros iguales solicitantes. El estado correspondiente de los iguales es 201d alcanzado a través de la transición 202c una vez se completa la descarga. Es de señalar que los iguales que han decidido actuar como iguales de carga de contenidos o fuentes se llaman iguales cooperativos, mientras que los iguales que no funcionan como iguales de carga de contenidos se llaman iguales no cooperativos. Solamente los iguales cooperativos se asociarán con velocidades de descarga mayores como se tratará posteriormente.
Un igual puede abandonar la red de superposición p2p 103 y volver al estado 201a desde los estados 201c o 201d a través de las transiciones 202e o 202f, respectivamente. El ordenador anfitrión fuente 101 puede llegar a estar fuera de línea solamente desde el estado 201d a través de la transición 202f.
La Fig. 3 muestra un diagrama de bloques esquemático 300 de la funcionalidad de uno de los iguales 102a, 102b, 102c, 102d, o 102e conectados a la red p2p 103 de la Fig. 1.
El igual comprende un componente de recepción 301, llamado MiOyente, que recibe en un puerto dado por ejemplo un puerto UDP dado o un puerto TCP los paquetes de la capa de transporte desde una aplicación de flujo de datos multimedia que se ejecuta en otro igual. La estructura del paquete de la capa de transporte se describe posteriormente con respecto a la Fig. 4. La carga útil de los paquetes de datos está en forma serializada. La serialización es el proceso de conversión de un mensaje por ejemplo los mensajes de protocolo de flujo de datos multimedia, o datos de flujo de datos a un formato que se puede transmitir a través de un enlace de conexión de una red subyacente (ver por ejemplo http;//java.sun.com/j2se/1.4.2/docs/guide/serialization/).
Un mensaje que contiene datos de una secuencia multimedia se construye por un ordenador anfitrión como una tabla para generar claves que se describe en Donald Knuth. La Técnica de Programar Ordenadores, Volumen 3; Ordenación y Búsqueda, Segunda Edición. Addison-Wesley, 1998. ISBN 0-201-89685-0. Sección 6.4: Generación de claves, páginas 513-558. Una tabla para generar claves consta de parejas de claves y valores.
MiOyente 301pasa la carga útil de los paquetes entrantes a un componente traductor 302. El componente traductor 302 deserializa, es decir convierte la carga útil serializada en una tabla para generar claves con la ayuda de un componente 303, llamado deserializador, y almacena esta carga útil convertida como una pareja de clave y valor en la tabla para generar claves. La tabla para generar claves se pasa luego a un controlador 305 que actúa sobre el mensaje de acuerdo con un método según se describe más tarde en conexión con la Fig. 5.
El controlador 305 puede usar la <clave> almacenada para consultar en un almacenamiento (no se muestra) para obtener el valor correspondiente contenido en la tabla para generar claves. Cada tabla para generar claves se destruye al final del mensaje que analiza el componente del controlador 305.
El traductor 302 también convierte un mensaje de la tabla para generar claves deserializado creado por el controlador 305 a un mensaje serializado adecuado para la transmisión en la carga útil de un paquete. La serialización se realiza con la ayuda de un deserializador 304. El mensaje serializado se transmite entonces sobre la red de datos subyacente por un componente de transmisión 306, llamado MiRemitente, a un puerto de escucha necesario, por ejemplo un puerto UDP o uno TCP de otro igual.
Cuando cualquiera de los iguales 102a, 102b, 102c, 102d, o 102e del sistema de comunicación 100, por ejemplo el igual 102a se pone en marcha en el paso 201b de la Fig. 2, primero descubre todos los otros iguales 102b, 102c, 102d, o 102e que funcionan como ordenadores anfitriones de carga de contenidos a través de un método fuera de banda. Tal método se describe por ejemplo por B. Cohen, “Los incentivos construían solidez en bittorrent”, actas del 1er. taller en Economía de Sistemas Igual a Igual, junio de 2003. Este método produce la dirección de red de un rastreador, que sigue la pista de las direcciones de red de los iguales de carga de contenidos de la red p2p 103 que ya ha descargado al menos partes de la secuencia de datos multimedia proporcionada por el ordenador anfitrión fuente 101. El rastreador puede ser el ordenador anfitrión fuente 101 en sí mismo, aunque esto no es un requerimiento. En caso de que la lista de iguales de descarga de contenidos sea muy grande, el rastreador puede limitar el número de direcciones de red de iguales enviados a un igual solicitante sin afectar adversamente al proceso de descarga igual a igual.
El funcionamiento del sistema de comunicación 100 se ilustra ahora en conexión con las Fig. 5 y 5A.
Con referencia primero a la Fig. 5 la cual muestra un diagrama de flujo ejemplar 500 que describe el funcionamiento de la aplicación igual a igual que se ejecuta en un igual 102b, 102c, 102d, o 102e distinto del ordenador anfitrión fuente 101 que se controla por el controlador 305 de la Fig. 3.
Consideramos ahora tanto la fase de comunicación basada en empuje como la fase de comunicación basada en extracción.
Un igual de descarga de contenidos se dice que va a extraer un bloque de datos de la secuencia de datos multimedia cuando solicita activamente cada unidad de tiempo el primer bloque de datos o el bloque contiguo siguiente de la secuencia de datos multimedia desde un igual de carga de contenidos seleccionado aleatoriamente incluyendo el ordenador anfitrión fuente 101.
Por otra parte, un igual de carga de contenidos está empujando un bloque de datos cuando anuncia activamente el bloque de datos o los bloques de datos de la secuencia de datos multimedia que contiene para enviar a un igual de descarga de contenidos cada unidad de tiempo en la que el igual de descarga de contenidos se selecciona aleatoriamente en base a un parámetro ponderado. El procedimiento de selección se describe más tarde. El igual de descarga de contenidos seleccionado a su vez puede solicitar descargar un bloque de datos requerido desde el ordenador anfitrión de anuncio dependiendo de si requiere los bloques de la secuencia de datos multimedia anunciada. Una realización preferente del sistema de comunicación 100 de la Fig. 1 usa las fases de comunicación basada en empuje y/o extracción en cada uno de los iguales 102b, 102c, 102d, o 102e. La combinación de ambos planteamientos provoca tiempos de descarga de la secuencia más rápidos logrados por los iguales.
Volvemos ahora a la Fig. 5. El diagrama de flujo de la Fig. 5 se divide en cinco unidades funcionales 1 a 5, como se marca en la Fig. 5 respectivamente. Mientras que las unidades funcionales están separadas lógicamente, no se pueden considerar de forma aislada. Estas unidades funcionales que se usan por el controlador 305 de un igual se describen a continuación:
Unidad funcional 1:
Suponemos que una aplicación igual a igual se pone en marcha en un igual, por ejemplo en el igual 102a que desea recibir la secuencia de datos multimedia entera. La aplicación además inicia el procedimiento de descubrimiento para encontrar todos los ordenadores anfitriones de carga de contenidos, por ejemplo 102b, 102c, 102d, y 102e que tienen los bloques de datos de la secuencia de datos multimedia que el controlador del igual 305 del igual 102a quiere descargar. Este procedimiento de descubrimiento implica asignar el contenido necesario del usuario al rastreador. El rastreador suministra una lista de al menos alguno de los iguales de carga de contenidos, llamados iguales o archivo de ordenadores anfitriones, que tiene bloques de datos para cargar al igual solicitante. La aplicación entonces asigna el ancho de banda de carga máximo al igual 102a que está dispuesto a aportar a la red de superposición 103 para evitar la necesidad de ancho de banda para otras aplicaciones que se ejecutan en el ordenador igual. La aplicación también pone en marcha el componente MiOyente 301 de la Fig. 3 que puede aceptar los paquetes entrantes desde los otros iguales de la red de superposición 103. El rastreador para su parte añade la dirección de red del igual 102a a la lista de iguales que ya participan en la diseminación de la secuencia de datos multimedia.
Unidad funcional 2:
El controlador 305 implementado por ejemplo en el igual 102a ejecuta los pasos de la unidad funcional 2 durante una fase de comunicación basada en empuje. El controlador 305 controla el anuncio de las partes de la secuencia de datos multimedia que ha almacenado para cargar. El contenidos disponible se anuncia en términos de un puntero de contenidos que representa el recuento del número de bloques contiguos recibidos y almacenados en caché en el igual 102a. Este recuento puede ser 0 inicialmente, cuando el igual no ha descargado ningún dato de la secuencia de datos multimedia desde los otros iguales.
El anuncio de bloques de datos disponibles se envía a un igual seleccionado aleatoriamente cada tiempo de espera para hilar los chismes (en milisegundos), el cual es un parámetro configurable por el usuario.
El aumento de este parámetro tendrá una influencia directa en el flujo de datos, es decir las velocidades de descarga de del método de flujo de datos p2p, y disminuirá el flujo de datos según el contenido disponible se anuncie menos frecuentemente en la red p2p 103. Por otra parte, un tiempo de espera para hilar los chismes muy pequeño puede conducir a la congestión de la red debido a una inundación de paquetes en la red. Para prevenir sincronización temporal de paquetes indeseable entre iguales se añade o sustrae un valor aleatorio pequeño (en milisegundos) la tiempo de espera de hilar los chismes durante cada invocación.
Unidad funcional 3:
El controlador 305 implementado por ejemplo en el igual 102a ejecuta los pasos de funcionamiento de la unidad funcional 3 durante la fase de comunicación basada en extracción. Aleatoriamente selecciona un igual de carga de contenidos cada unidad de tiempo y solicita a ese igual enviar el primer bloque de datos o el contiguo siguiente de la secuencia de datos multimedia para continuar construyendo una copia de la secuencia de datos multimedia entera. Este método general de descarga de contenidos también se denomina como extracción de chismes. El igual 102a que funciona ahora como un igual de descarga de contenidos envía cada unidad de tiempo su puntero de secuencia actual a un igual elegido aleatoriamente que funciona como un igual de carga de contenidos a la espera de que el puntero de la secuencia del igual seleccionado esté más avanzado que su propio puntero de secuencia y que sea voluntario cargar el bloque solicitado de datos al igual 102a.
El igual 102a envía estas peticiones cada unidad de tiempo, llamado tiempo de espera de la petición, que se extiende a algunos milisegundos, y es un parámetro configurable por el usuario. La ralentización de este parámetro tendrá una influencia directa en el flujo de datos y de esta manera en las velocidades de descarga del método de flujo de datos multimedia p2p, y disminuirá el flujo de datos ya que la red de superposición 103 requerirá menos frecuentemente los contenidos. Por otra parte, un tiempo de espera de la petición muy pequeño puede conducir a la congestión de la red debido a una inundación de paquetes en la red. Para prevenir sincronización de paquetes indeseable entre iguales se añade o sustrae un valor aleatorio pequeño (en milisegundos) al tiempo de espera de la petición durante cada invocación.
Unidad funcional 4:
Los pasos de funcionamiento de la unidad funcional 4 se ejecutan por un controlador 305 de la Fig. 5 que se implementa en un igual que funciona como un igual de carga de contenidos. La petición generada por el controlador 305 del igual 102a en la unidad funcional 3 se recibe por el igual elegido aleatoriamente, por ejemplo el igual 102b y se pasa a la unidad funcional 4 de ese igual 102b. La unidad funcional 4, que espera en su componente MiOyente 301 hasta oír una petición, primero comprueba para ver si el bloque de datos solicitado está ya almacenado en caché en su almacenamiento el cual puede ser un disco duro (no se muestra). La comprobación se hace comparando simplemente el puntero de la secuencia local del igual 102b con el puntero de la secuencia del igual solicitante 102a. En caso de que el puntero de la secuencia local del igual 102b esté más avanzado que el puntero de la secuencia recibido desde el igual 102a el controlador 305 del igual 102b invoca una operación funcional, llamada AgentedeRecursos, para tomar una decisión de si enviar un bloque de datos de la secuencia de datos multimedia al igual solicitante 102a. El AgentedeRecursos tomará la decisión de si enviar un bloque al igual 102a en base a los siguientes requerimientos:
1.
¿Está disponible el ancho de banda de carga?
2.
¿Hay un incentivo para enviar un bloque de datos al igual solicitante 102a?
Si el AgentedeRecursos es afirmativo entonces el controlador 305 genera un mensaje de datos como se ilustra posteriormente en conexión con la Fig. 4. El mensaje de datos contiene un bloque, es decir un número predeterminado de bytes de datos de la secuencia de datos multimedia para el igual solicitante 102a. El tamaño del bloque se determina normalmente por el AgentedeRecursos de la unidad funcional 4 como se explica más tarde. En caso de que la diferencia entre el puntero de la secuencia local del igual de carga de contenidos 102b y el puntero de la secuencia del igual solicitante 102a sea menor que este tamaño de bloque, el tamaño de bloque a ser enviado es el tamaño de esta diferencia.
Unidad funcional 5:
La unidad funcional 5 se invoca por el controlador 305 de la Fig. 3 en el igual de descarga de contenidos 102a cuando recibe un mensaje de chismes de empuje, es decir un anuncio de los bloques de datos disponibles desde un igual de carga de contenidos, por ejemplo el igual 102b. Si el puntero de la secuencia anunciada del igual de carga de contenidos 102b es mayor que el puntero de la secuencia del igual de descarga de contenidos 102a entonces el igual de descarga de contenidos 102a solicita al igual de carga de contenidos 102b que envíe un bloque de datos de la secuencia de datos multimedia enviando un mensaje de Petición de Envío al igual de carga de contenidos 102b (ver la Fig. 4 y la descripción en la Sección titulada “Especificación del Protocolo de Comunicación”).
5
10
15
20
25
30
35
40
45
50
55
Volvamos ahora a la Fig. 5A que muestra la unidad funcional implementada en el ordenador anfitrión fuente 101. Cuando una aplicación igual a igual se está ejecutando en el ordenador anfitrión fuente 101 y el controlador 305 mostrado en la Fig. 3 se integra por el ordenador anfitrión fuente 101, la funcionalidad es distinta de aquélla ilustrada en la Fig. 5. La aplicación igual a igual y la funcionalidad del controlador de la fuente se ilustra por el diagrama de flujo mostrado en la Figura 5A.
La secuencia de datos multimedia entera a ser entregada se crea en el ordenador anfitrión fuente 101 y de esta manera el ordenador anfitrión fuente 101 es siempre un proveedor de bloques de datos de la secuencia de datos multimedia a los otros iguales 102a a 102e. Por lo tanto, el ordenador anfitrión fuente 101 nunca intenta descargar o “extraer” los bloques de datos de la secuencia de datos multimedia desde otros iguales.
La unidad funcional 1 en la Fig. 5A, realiza las siguientes funciones:
1.
Configurar un rastreador. Un rastreador mantiene una lista dinámica de iguales que se unen y abandonan la red p2p 103. Esto permite a nuevos iguales contactar con el rastreador para descargar una lista actual de iguales desde los cuales puede comenzar la descarga de la secuencia. En caso de que el ordenador anfitrión fuente 101 por sí mismo se ofrezca voluntario para ser el rastreador ello garantiza que todos los demás iguales 102a a 102e tendrán acceso a al menos un igual que mantenga el contenido.
2.
Anuncio de los contenidos a través de medios fuera de banda. Una vez que se configura el rastreador el ordenador anfitrión fuente 101 necesita anunciar la ubicación del rastreador para permitir a los iguales conectar con la secuencia de datos multimedia. Hay varios métodos fuera de banda, es decir fuera del protocolo central, para lograr esto. Por ejemplo, se podría publicar la descripción del contenido y la dirección de la red del rastreador en un sitio web.
La asignación del ancho de banda de carga y la funcionalidad de configuración de MiOyente 301 es similar a aquélla de la unidad funcional 1 de la Fig. 5.
Las unidades funcionales del controlador 2 y 4 mostradas en la Fig. 5A son idénticas en funcionalidad a las unidades funcionales correspondientes 2 y 4 como se muestra en la Fig. 5.
Un punto clave a ser señalado es que el ordenador anfitrión fuente 101 no necesita proporcionar la secuencia de datos multimedia a todos los iguales que intentan extraer la secuencia de datos multimedia. Como se muestra en la Figura 5A, el ordenador anfitrión fuente 101 puede declinar una petición si no hay ancho de banda de carga. Es de señalar, que los mecanismos de incentivos distribuidos tratados en la siguiente sección no son directamente aplicables al ordenador anfitrión fuente 101 porque una fuente es necesariamente altruista ya que nunca descarga su propia secuencia de datos multimedia de otros iguales.
Método para Seleccionar un Igual de Descarga de Contenidos
El esquema de selección empleado por el AgentedeRecursos de la unidad funcional 4 de la Fig. 5 se describe a continuación.
Los iguales 101, 102a a 102e del sistema de comunicación 100 son entidades independientes y se puede esperar que actúen para su propio beneficio. En el caso de una diseminación del flujo de datos p2p este beneficio es la velocidad de descarga de la secuencia recibida por el igual. El esquema de selección propuesto necesita aprovechar este requerimiento de egoísmo de los iguales proporcionando una velocidad mayor de las descargas de secuencias a aquellos iguales que aportan más ancho de banda de carga que otros iguales al sistema de comunicación 100. Idealmente, la velocidad de descarga de la secuencia en un igual i debe ser
imagen1
donde µi indica la aportación del ancho de banda del igual i de vuelta a la red p2p 103 desde el comienzo del imagen1
proceso de descarga de la secuencia en el igual i.
es la suma de las aportaciones de ancho de banda de carga de todos los iguales en la red 103 y representa de esta manera el ancho de banda de carga disponible total en la red p2p 103. La ecuación (1) algunas veces se ha llamado “Equidad proporcional global” (X. Yang y G. de Veciana, “Capacidad de Servicio de las Redes Igual a Igual”, en las Actas del Infocom del IEEE, 2004). No obstante, no es un mecanismo de selección práctico porque implícito en la ecuación está la suposición de una autoridad de medición equitativa y centralizada para determinar la µi.
Un mecanismo incentivo relacionado es el esquema de equidad proporcional de modo igual descrito por X. Yang y
G. Veciana, “Capacidad de Servicio de las Redes Igual a Igual”, en las Actas del Infocom del IEEE, 2004. Cada igual toma decisiones sobre compartir su propio ancho de banda en base al ancho de banda recibido de otros iguales. Todas las mediciones de este ancho de banda recibido son locales, y así el método está completamente distribuido.
El esquema de selección de acuerdo con la presente invención resuelve algunas desventajas muy importantes de la equidad proporcional Global y la equidad proporcional de manera igualitaria;
1.
Ello permite a los iguales llegar a ser parte del esfuerzo de flujo de datos en vivo mediante la unión de la operación de descarga en cualquier momento, el requerimiento de unión en el comienzo exactamente en el momento sincronizado con los otros iguales se elimina comparado con la equidad proporcional de manera igualitaria.
2.
La dinámica del sistema de incentivos y equidad es más rápida que la equidad proporcional de manera igualitaria pura. Esto significa que el sistema de incentivos propuesto reacciona rápidamente a los cambios en el ancho de banda, estado del igual (según se encienden los iguales o se apagan) y el tamaño de la red, conduciendo de esta manera a mucha mejor escalabilidad del protocolo de flujo de datos de contenidos.
Selección preferencial de iguales cooperativos durante una fase de comunicación basada en empuje
El término igual cooperativo define un igual que aporta cargando el ancho de banda a la red p2p 103, es decir envía bloques de datos de un flujo de datos multimedia a otros iguales.
Cada igual en la red p2p 103 de la Fig. 1 mantiene un vector V = {V[0], V[1],… V[n-1]}, en el que cada uno de los elementos V[0], V[1],… V[n-1] representa la cantidad de datos de contenidos en kB recibidos desde un igual respectivo y en el que los elementos se etiquetan sin pérdidas de generalidad como 0 a n-1. En el caso presente n es 4. Para facilitar la ilustración de los esquemas de selección, se supone ahora que el igual 102a funciona como un igual de carga de contenidos. En este caso el vector V almacenado en el igual 102a comprende los elementos V(0) a V(3) los cuales representan la cantidad de datos de contenidos recibidos desde el igual 102b, 102c, 102d y 102e, respectivamente. Este vector está normalizado a Vn dividiendo V por la suma de todos los elementos de V, es decir la cantidad total de datos de contenidos recibidos en el igual 102a, de manera que la suma de los elementos de Vn es 1.
Ahora, un vector de probabilidad acumulativo P = {P[0], P[1],… P[n-1]} se construye como sigue:
P[0] = Vn[0]
P[1] = P[0] + Vn[1]
P[2] = P[1] + Vn[2]
P[i] = P[i-1] + Vn[i]
P[n-1] = 1
A continuación se genera un número aleatorio distribuido uniformemente entre 0 y 1 mediante el controlador 305 del igual 102a. A partir del vector de probabilidad acumulativo P, se recupera el parámetro ponderado, es decir el elemento del vector normalizado con el índice n que corresponde al intervalo en el que este número aleatorio cae. Este índice representa el igual al que el mensaje de disponibilidad será empujado desde el igual 102a. El funcionamiento de la selección del esquema ejecutado por el AgentedeRecursos del controlador 305 del igual 102a se demuestra ahora mediante el siguiente ejemplo:
Se supone de nuevo, que el igual 102a funciona como un igual de carga de contenidos durante una fase de comunicación basada en empuje.
Permitamos n = 4 (los iguales etiquetados 0, 1, 2, 3) Permitamos V = [1kB, 2kB, 3kB, 4kB] entonces sum (V) = 10kB Vn = [0,1, 0,2, 0,3, 0,4] P = [0,1, 0,3, 0,6, 1]
Ahora, se genera el número aleatorio 0,546 que cae en el intervalo
0,3 < 0,546> 0,6, en el que el valor 0,3 se asocia con el elemento etiquetado 1 y el valor 0,6 se asocia con el elemento etiquetado 2. Se supone, que el elemento etiquetado 0 corresponde al igual 102b que ha cargado 1kB de los datos de contenidos, el elemento etiquetado 1 corresponde al igual 102c que ha cargado 2kB, el elemento etiquetado 2 corresponde al igual 102d que ha cargado 3kB y el elemento etiquetado 3 corresponde al igual 102e que ha cargado 4kB al igual 102a. Como se muestra en el ejemplo, los elementos del vector V se ordenan tal que el primer elemento pertenece al igual con el ancho de banda de carga más bajo mientras que el último elemento corresponde al igual con el ancho de banda de carga más alto con respecto al igual 102a.
De esta manera, se selecciona el elemento correspondiente con índice 2 en el ejemplo anterior. Como resultado, el AgentedeRecursos del controlador 305 hace que MiRemitente 306 del igual 102a envíe un mensaje de protocolo que incluye la información de anuncio “Disponible” al igual 102c, la cual corresponde al elemento con el índice 2, como se muestra en la Fig. 6.
Este esquema de selección determina que un igual funcionando justo como un igual de descarga de contenidos recibe la secuencia de datos multimedia entera requerida tanto más rápido cuanto más anchos de banda de carga ha gastado para los otros iguales.
Ajustar el tamaño del bloque mientras se sirven datos a unos iguales solicitantes durante una fase de comunicación basada en extracción
Cuando un igual i que funciona como un igual de carga de contenidos recibe un mensaje de “Petición de Envío” desde un igual k que funciona como un igual de descarga de contenidos, como se muestra en la Fig. 7, debe determinar la velocidad de carga a la que enviará los datos de la secuencia de datos multimedia al igual solicitante. Aquí dentro se encuentra un problema no causal:
En un momento ligeramente posterior, se supone que un igual preferente j, es decir con un Vn[j]>Vn [k] del vector normalizado V solicita un bloque de datos desde el igual i; pero el igual i está en el proceso de enviar un bloque de datos grande al igual k debido a su compromiso previo y así no es capaz de enviar un bloque de datos al igual j a una velocidad de bit buena aunque el igual j es preferente al igual k.
Este problema se resuelve en el igual i que funciona como un igual de carga de contenidos haciendo el tamaño del bloque enviado al igual k proporcional al valor Vn[k] del vector normalizado V, en el que el tamaño del bloque que varia se define por:
Tamaño del bloque enviado = Vn [k] + (tamaño de bloque máximo)
El tamaño del bloque máximo se fija a la MTU (Unidad de Transferencia Máxima) del protocolo de transporte usado en la implementación actual. Por ejemplo, la MTU del paquete de la capa de transporte UDP es de 64kB en la mayoría de las implementaciones IP.
De esta manera, el igual no preferente k solamente obtiene un bloque de datos pequeño desde el igual i, y de la misma manera solamente usa el enlace de carga del igual i durante un periodo de tiempo pequeño. El igual j por otra parte obtiene un bloque de datos que tiene un tamaño más grande debido a que Vn[j] es mayor que Vn[k]. En general, si el igual k no está cooperando con otros iguales en el sistema de comunicación 100 entonces su valor Vn[j] correspondiente será muy pequeño en todos los iguales y el igual k recibirá descargas de la secuencia de baja velocidad baja y a trocitos desde otros iguales. Como resultado el igual k también tendrá que hacer una gran cantidad de transacciones antes de que sea capaz de descargar la secuencia de datos multimedia completa. Por lo tanto, el esquema de variación del tamaño del bloque distribuido se refuerza para el caso del planteamiento basado en extracción.
Por lo tanto, este esquema de ajuste del tamaño del bloque determina que un igual funcionando justo como un igual de descarga de contenidos recibe la secuencia de datos multimedia entera requerida tanto más rápido cuanto más anchos de banda de carga ha gastado con los otros iguales.
Dinámica rápida en la red p2p
El esquema de ajuste del tamaño del bloque y de selección de iguales descrito anteriormente puede ralentizar la dinámica según avanza el tiempo. Este es un artefacto del comportamiento de descarga asíncrona de los iguales porque los iguales pueden unirse o abandonar la red de superposición 103 aleatoriamente en distintos momentos. Entonces, los iguales que participan y los bloques de datos de carga a otros iguales ganan demasiado ancho de banda de descarga en el esquema, bloqueando a los iguales más nuevos como se explicó anteriormente. La dinámica del mecanismo de ajuste del tamaño del bloque y selección del igual debería ser rápida para cambiar los elementos del vector normalizado rápidamente según la red de superposición 103 evoluciona con el tiempo.
El sistema de comunicación 100 no puede adaptarse lo bastante rápido a cambios en el ancho de banda de carga que se ofrece por otros iguales, posiblemente permitiendo a los iguales descargar los bloques de datos de la secuencia de datos multimedia que puede no haber aportado ancho de banda de carga al sistema de comunicación 100 en el pasado reciente mientras que deniega a los iguales que aportan la ventaja correspondiente de descargas de secuencias rápidas. Esta situación ocurre en el igual i cuando su vector V tiene un valor grande para V[j] porque el igual j aportó una gran cantidad de bloques de datos hace mucho tiempo pero desde entonces no ha cargado bloques de datos del todo, mientras que otro igual k se ha unido a la red p2p 103 recientemente pero está cargando consecuentemente los bloques útiles de la secuencia. La inercia debida a V[j] que es mucho más grande que V[k] impide al igual i de la adaptación adecuada para dar al igual k una prioridad mayor que el igual j. Necesitamos introducir por lo tanto una utilidad dependiente del tiempo para las aportaciones por varios iguales
Por lo tanto, se usa un mecanismo de marcha atrás del deterioro para acelerar la dinámica del método propuesto para contrarrestar este problema. En particular, el vector normalizado V está “deteriorado”, es decir disminuido por un factor de deterioro ρ, con 0 < ρ < 1 en cada intervalo de tiempo. El intervalo de tiempo es un parámetro específico del sistema, por ejemplo del orden de 1 segundo. Este parámetro asegura que el sistema de comunicación 100 se adapta rápidamente a los cambios en el ancho de banda de carga que se ofrece por otros iguales.
En cada intervalo de tiempo se recalcula el vector V:
V (en el tiempo = t+1) = V (en el tiempo = t) * ρ
Por ejemplo, se supone que el vector inicialmente es V (t) = [1 2 3 4] y ρ=0,8. Después de un intervalo de tiempo, V (t+1) = [0,8 1,6 2,4 3,2] y después de dos intervalos de tiempo V (t+2) = [0,64 1,28 1,92 2,56]. Si un bloque de datos llega desde el igual el cual corresponde al elemento con índice 0, entonces V incrementa V[0] en 1 y de ahí que V = [1,64 1,28 1,92 2,56]. De esta manera el igual 0 envía al igual i un bloque de datos hace muy poco, mientras que según avanza el tiempo las aportaciones de aquellos iguales que aportaron bloques hace mucho tiempo estarán “olvidados”.
Especificación del Protocolo de Comunicación
La Fig. 4 muestra distintos tipos de mensajes usados para la comunicación en el sistema de comunicación 100. Los mensajes se clasifican en dos tipos: mensajes de protocolo, por ejemplo el mensaje 403 y los mensajes de datos, por ejemplo el mensaje 404. Los mensajes de protocolo se usan para la señalización asíncrona entre los iguales de la red p2p distribuida 103 mientras que los mensajes de datos se usan para cargar los bloques de datos con tamaño de bloque ajustable de la secuencia de datos multimedia desde un igual de carga de contenidos a un igual de descarga de contenidos que solicita estos bloques de datos. Todos los mensajes se encapsulan en los paquetes del protocolo de transporte como se muestra en el formato del mensaje 401. TCP o UDP se puede usar como un protocolo de la capa de transporte.
La carga útil de un paquete de la capa de transporte puede comprender de esta manera un mensaje de protocolo de flujo de datos p2p. El formato del mensaje 402 muestra un mensaje genérico (protocolo o datos) en forma serializada. Cada vez que estos mensajes son deserializados por el deserializador 303 o se construyen por el controlador 305 de la Fig. 3, se almacenan en una tabla para generar claves <clave, valor> para fácil acceso por el controlador 305. Un mensaje primero clasifica su propio tipo (protocolo o datos), y luego contiene algunos parámetros específicos del mensaje, como se describirá posteriormente. Cuando el mensaje se almacena como una tabla para generar claves, todos estos parámetros junto con el tipo de mensaje constituyen la clave para la tabla para generar claves y la parte restante del mensaje se almacena como el valor. En el caso de un mensaje de protocolo, el mensaje se puede clasificar además como Disponible, Petición de Envío, EnviandoAhora, y ArchivodelOrdenadorAnfitrión dependiendo del tipo de información de control puesta en el mensaje de protocolo 403. Los tipos de clasificación se definen como sigue:
Disponible: Un mensaje de disponible se envía como parte de la componente “de empuje de chismes” del sistema. En este caso el igual envía un mensaje proactivo a otro igual anunciando el último número de byte almacenado en caché (recibido) en forma de un puntero de contenido.
Petición de Envío: Un mensaje de Petición de Envío señala la aceptación de un igual para descargar la información desde un igual de carga de contenidos, por ejemplo, el igual antiguo puede haber recibido un mensaje de disponible desde el último igual y puede querer descargar un bloque de la secuencia. El mensaje de Petición de Envío también se envía periódicamente a otro igual como parte del planteamiento basado en extracción del sistema 100 para solicitar los bloques de la secuencia. El diagrama de temporización correspondiente se muestra en la Fig. 6.
EnviandoAhora: Un mensaje de EnviandoAhora es un reconocimiento de un igual de carga de contenidos que indica que ha aceptado el mensaje de Petición de Envío y estará enviando actualmente un bloque de la secuencia.
ArchivodelOrdenadorAnfitrión: Cada igual intercambia una lista de vecinos conocidos con un igual seleccionado aleatoriamente. Esto ayuda a mantener la lista actual de iguales en línea en los iguales.
Un mensaje de datos se muestra en la Figura 4(D). El mensaje de datos contiene el tamaño del bloque de datos contenido en un mensaje de datos así como el puntero de la secuencia del primer byte del bloque de la secuencia en la secuencia total. Es de señalar que el tamaño del bloque puede variar según se describió anteriormente. Con referencia a la Fig. 6 que muestra el diagrama temporal 605 para el funcionamiento de la diseminación de datos basada en empuje. En particular, el diagrama temporal correspondiente 605 muestra el funcionamiento de la fase de comunicación basada en empuje entre dos iguales que usan los mensajes descritos anteriormente. En este caso el igual A, por ejemplo el igual 102b anuncia su contenido al igual B, por ejemplo el igual 102a. Las unidades funcionales 3 y 4 de la Fig. 5 en los iguales A y B respectivamente se implican en la operación. El puntero de contenido 602 de la secuencia 601 almacenado en caché en el igual A se representa en la Fig. 6. La secuencia 603 en el igual B también se muestra junto con el puntero de la secuencia 604. La Fig. 7 muestra el diagrama temporal para el funcionamiento de la fase de comunicación basada en extracción para descargar los datos. En este caso el igual A busca obtener los datos del igual B. El puntero de contenidos 702 también llamado puntero de la secuencia, de la secuencia 701 en el igual A se muestra en la Fig. 7. La secuencia 703 en el igual B se muestra también junto con el puntero de la secuencia 704.
Resultados de la Simulación
Para evaluar el sistema de comunicación 100 se ha configurado una simulación de 100 iguales con un ordenador anfitrión fuente. Cada igual que incluye la fuente tiene un ancho de banda de carga de 1 Mbps y se conectó con otros iguales a través de una red IP tipo Internet. A cada igual se la suministró la información de direccionamiento sobre todos los demás iguales en la red mediante un rastreador. Se usó una secuencia de datos multimedia de una longitud fija de 100 MB que fue dividida en 100 bloques con un tamaño de bloque de 1024 kB.
La Fig. 8(A) resalta la diferencia en las velocidades de descarga de los iguales cooperativos que aporta ancho de banda de carga igual a dos veces la velocidad de bit del vídeo que está siendo compartido (diseminación del control = 2) e iguales no cooperativos que no aportan ancho de banda de carga, que tienen de esta manera una diseminación del control de 0. Como se puede ver, los iguales cooperativos son recompensados mediante velocidades más rápidas de descarga de la secuencia comparadas con sus iguales no cooperativos.
Como era de esperar, los iguales que aportan ancho de banda de carga a la red p2p 103 fueron recompensados con mayores velocidades de descarga, como indica la Figura 7. Había una gran diferencia en la velocidad de descarga entre los iguales de cooperación plena y con unos no cooperativos en menor medida según se indica por las barras de error de la Figura 8(A). Por lo tanto ejecutamos simulaciones adicionales para verificar la equidad a largo plazo del sistema a través de la descarga de secuencias múltiples.
Los gráficos de barras de las Figuras 8(B) y 8(C) muestran el tiempo de descarga medio en segundos tomado por 50 iguales plenamente cooperativos y 50 no cooperativos para recibir los 100 bloques de la secuencia que comprende la secuencia multimedia. Está claro que en media, todos los iguales (plenamente cooperativos y no cooperativos) reciben similar calidad de servicio dependiendo de cuantos bloques de datos carguen a la red p2p.

Claims (18)

  1. REIVINDICACIONES
    1.- Un método para la distribución de datos de contenidos a una pluralidad de ordenadores anfitriones (102a a 102e) cada uno de los cuales se adapta para funcionar como un ordenador anfitrión de carga de contenidos o descarga de contenidos, en el que la pluralidad de ordenadores anfitriones (102a a 102e) forma una red igual a igual (103), dicho método que comprende los pasos de:
    a) Proporcionar al menos una parte de los datos de contenidos por al menos un ordenador anfitrión de carga de contenidos (102a) que pertenece a dicha pluralidad de ordenadores anfitriones (102a a 102e);
    b) Seleccionar en el ordenador anfitrión de carga de contenidos (102a) un ordenador anfitrión de descarga de contenidos (102b) usando un parámetro ponderado que se determina en base a los datos de contenidos que se han enviado desde otros ordenadores anfitriones (102b a 102e) incluyendo el ordenador anfitrión de descarga de contenidos seleccionado (102b) al ordenador anfitrión de carga de contenidos (102a);
    b1) Anunciar la parte o partes disponibles de los datos de contenidos desde el ordenador anfitrión de carga de contenidos (102a) al ordenador anfitrión de descarga de contenidos (102b);
    b2) Enviar un bloque de contenidos que incluye la parte de los datos de contenidos solicitados por el ordenador anfitrión de descarga de contenidos seleccionado (102b) desde el ordenador anfitrión de carga de contenidos (102a) al ordenador anfitrión de descarga de contenidos seleccionado (102b), y
    c) Seleccionar en un ordenador anfitrión de descarga de contenidos (102c) un ordenador anfitrión de carga de contenidos (102d);
    c1) Solicitud de al menos una parte de los datos de contenidos por el ordenador anfitrión de descarga de contenidos (102c) desde el ordenador anfitrión de carga de contenidos seleccionado (102d);
    c2) Enviar, si está disponible, un bloque de contenidos que incluye la parte de los datos de contenidos solicitados por el ordenador anfitrión de descarga de contenidos seleccionado (102c) desde el ordenador anfitrión de carga de contenidos (102d) al ordenador anfitrión de descarga de contenidos, en el que el tamaño del bloque de contenidos se ha ajustado de una manera predeterminada
  2. 2.- El método de la reivindicación 1, en el que el contenido comprende un flujo de datos multimedia donde los datos se entregan en forma de bloques usando paquetes de la capa de transporte predeterminados.
  3. 3.- El método de la reivindicación 1 o 2, en el que el parámetro es un número aleatorio y el paso b) comprende los siguientes pasos:
    -
    La generación de un vector en el ordenador anfitrión de carga de contenidos (102a), en el que el vector incluye una serie de elementos con cada elemento que representa la cantidad de datos de contenidos recibidos desde un ordenador anfitrión respectivo (102b a 102e) que ha enviado los datos de contenidos al ordenador anfitrión de carga de contenidos (102a);
    -
    La normalización del vector dividiendo cada elemento por la suma de todos los elementos;
    -
    La generación de una función de distribución de probabilidad acumulativa a partir de los elementos del vector normalizado;
    -
    La generación de un número aleatorio entre 0 y 1;
    -
    La elección del intervalo definido por la función de distribución de probabilidad acumulativa en la que el número aleatorio cae y la selección de un número aleatorio ponderado que se encuentra entremedias o exactamente en el valor más pequeño o más grande del intervalo elegido;
    -
    La asociación del número aleatorio ponderado con el elemento del vector normalizado, y
    -
    La selección del ordenador anfitrión de descarga de contenidos (102b) que corresponde con el elemento
    asociado del vector normalizado. .
  4. 4.-El método de cualquiera de las reivindicaciones 1 a 3, en el que los pasos b) a c2) se repiten en momentos determinados hasta que los datos de contenidos enteros se han entregado a uno o más ordenadores anfitriones de descarga de contenidos.
  5. 5.-El método de cualquiera de las reivindicaciones 1 a 4, en el que el paso b2) y/o el paso c2) comprende el paso de ajustar el tamaño del bloque de contenidos a ser enviado en base a la cantidad de datos de contenidos recibidos desde los otros ordenadores anfitriones en el ordenador anfitrión de carga de contenidos (102d).
  6. 6.-El método de la reivindicación 5, en el que el paso de ajustar el tamaño del bloque de contenidos comprende los siguientes pasos:
    -
    La generación de un vector en el ordenador anfitrión de carga de contenidos (102d) que ha recibido un mensaje de Petición de Envío desde el ordenador anfitrión de descarga de contenidos (102c), en el que el vector incluye una serie de elementos cada elemento que representa la cantidad de datos de contenidos recibidos desde un ordenador anfitrión respectivo el cual ha enviado los datos de contenidos al ordenador anfitrión de carga de contenidos (102d);
    -
    Normalizar el vector dividiendo cada elemento por la suma de todos los elementos;
    -Generar una función de distribución de probabilidad acumulativa a partir de los elementos del vector normalizado;
    -
    Elegir el elemento del vector normalizado que está asociado con el ordenador anfitrión de descarga de contenidos; y
    -
    Enviar al ordenador anfitrión de descarga de contenidos (102c) un bloque de contenidos con un tamaño que es una función proporcional del elemento elegido del vector normalizado y un tamaño de bloque máximo predeterminado.
  7. 7.-El método de cualquiera de las reivindicaciones 1 a 6, en el que en el paso c) se selecciona aleatoriamente un ordenador anfitrión de carga de contenidos (102d) por el ordenador anfitrión de descarga de contenidos (102c) cada intervalo de tiempo.
  8. 8.-El método de cualquiera de las reivindicaciones 1 a 7, en el que el paso b1) comprende los siguientes pasos:
    -
    Anunciar los contenidos disponibles desde el ordenador anfitrión de carga de contenidos (102a) al ordenador anfitrión de descarga de contenidos seleccionado (102b) en términos de un puntero de contenidos y
    -
    Comparar en el ordenador anfitrión de descarga de contenidos (102b) el puntero de contenidos recibido con su puntero de contenidos local para decidir si se necesita o no el contenido disponible anunciado.
  9. 9.-El método de cualquiera de las reivindicaciones 1 a 8, en el que el paso c1) comprende los siguientes pasos:
    Enviar mediante el ordenador anfitrión de descarga de contenidos (102c) su puntero de contenidos local al ordenador anfitrión de carga de contenidos (102d) seleccionado, y
    Comparar en el ordenador anfitrión de carga de contenidos (102d) el puntero de contenidos local recibido con su puntero de contenidos para decidir si está disponible o no la parte de contenidos solicitada.
  10. 10.- El método de la reivindicación 3 o 6, en el que
    los elementos del vector normalizado se multiplican con un factor de deterioro cada unidad de tiempo y en el que los elementos del vector normalizado se actualizan cada vez que se reciben datos de contenidos adicionales en el ordenador anfitrión de carga de contenidos.
  11. 11.- El método de cualquiera de las reivindicaciones precedentes, en el que el contenido a ser entregado se almacena o genera inicialmente en tiempo real en un ordenador anfitrión fuente (101) y en el que al menos las partes del contenido se envían a al menos algunos de la pluralidad de ordenadores anfitriones (102a a 102e).
  12. 12.- El método de la reivindicación 11, que comprende los pasos de
    Almacenar la información de la dirección de cada ordenador anfitrión de la pluralidad de ordenadores anfitriones (102a a 102e), y
    Recuperar la información de las direcciones almacenada mediante un ordenador anfitrión que se une a la red igual a igual (103) desde otros ordenadores anfitriones ya conectados a la red igual a igual (103).
  13. 13.- El método de cualquiera de las reivindicaciones precedentes, que comprende los pasos de
    Ajustar para cada ordenador anfitrión que se une a la red igual a igual (103) el tamaño de bloque máximo a ser usado para la carga en al menos una parte del contenido de un ordenador anfitrión de descarga de contenidos.
  14. 14.- Un sistema de comunicación (100) para entrega de datos de contenidos en una red igual a igual (103), que comprende una pluralidad de ordenadores anfitriones (101, 102a a 102e) que forman la red igual a igual (103), cada ordenador anfitrión que se adapta a cargar y/o descargar al menos una parte de los datos de contenidos a ser entregados, en el que
    a) cada ordenador anfitrión adaptado para cargar al menos una parte de los datos de contenidos comprende
    -
    almacenar medios para el almacenamiento de al menos una parte de los datos de contenidos a ser entregados,
    -
    los primeros medios de recepción (301) para recibir un mensaje de Petición de Envío desde un ordenador anfitrión de descarga de contenidos,
    -
    los primeros medios de control (305) para seleccionar un ordenador anfitrión de descarga de contenidos usando un parámetro ponderado que se determina en base a los datos de contenidos que se han enviado desde otros ordenadores anfitriones incluyendo el ordenador anfitrión de descarga de contenidos seleccionado para el ordenador respectivo,
    -
    los medios de generación para la generación de un bloque de contenidos con un tamaño de bloque ajustable, el bloque de contenidos que incluye la parte de los datos de contenidos solicitados por el ordenador anfitrión de descarga de contenidos seleccionado,
    -
    los primeros medios de transmisión (306) que se adaptan para anunciar la parte o partes disponibles de los datos de contenidos almacenados en los medios de almacenamiento para el ordenador anfitrión de descarga de contenidos seleccionado y para enviar un bloque de contenidos con un tamaño de bloque ajustable al ordenador anfitrión de descarga de contenidos seleccionado, el bloque de contenidos que incluye la parte de los datos de contenidos solicitados por el ordenador anfitrión de descarga de contenidos seleccionado,
    y
    b) cada ordenador anfitrión adaptado para descargar al menos una parte de un contenido comprende
    -
    los segundos medios de almacenamiento para el almacenamiento de al menos parte de los datos de contenidos recibidos desde al menos un ordenador anfitrión de carga de contenidos,
    -
    los segundos medios de control (305) para seleccionar un ordenador anfitrión de carga de contenidos,
    -
    los segundos medios de transmisión (306) que se adaptan para enviar un mensaje de Petición de Envío para al menos una parte de los datos de contenidos al ordenador anfitrión de carga de contenidos seleccionado, y
    -
    los segundos medios de recepción (301) adaptados para recibir un bloque de contenidos desde el ordenador anfitrión de carga de contenidos que incluye la parte de los datos de contenidos solicitados por el ordenador anfitrión de descarga de contenidos seleccionado.
  15. 15.- El sistema de comunicación de la reivindicación 14, en el que cada ordenador anfitrión además comprende
    - los medios de conversión (302, 303, 304) para la serialización de paquetes que se dispensan desde un ordenador anfitrión de carga de contenidos y para la deserialización de paquetes que llegan al ordenador anfitrión de carga de contenidos a una tabla para generar claves.
  16. 16.- El sistema de comunicación de la reivindicación 14 o 15,
    en el que se asocia un puntero de contenidos con los datos de contenidos almacenados en cada ordenador anfitrión de carga y descarga de contenidos para indicar la parte o partes actuales de los datos de contenidos almacenados allí dentro, en donde
    cada ordenador anfitrión de carga de contenidos comprende medios de comparación para determinar si está disponible la parte de los datos de contenidos solicitados por un ordenador anfitrión de descarga de contenidos, y
    cada ordenador anfitrión de descarga de contenidos comprende medios de comparación para determinar si es necesaria la parte de los datos de contenidos anunciada por un ordenador anfitrión de carga de contenidos.
  17. 17.- El sistema de comunicación de cualquiera de las reivindicaciones 14 a 16, en el que
    los primeros medios de control del ordenador anfitrión de carga de contenidos se adaptan para ejecutar el método de la reivindicación 3, 6 y/o 10.
  18. 18.- El sistema de comunicación de cualquiera de las reivindicaciones 14 a 17, en el que la red igual a igual (103) es una red de superposición.
ES06025429T 2006-12-08 2006-12-08 Método y sistema para la diseminación del contenido igual a igual. Active ES2360647T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP06025429A EP1931108B1 (en) 2006-12-08 2006-12-08 Method and system for peer-to-peer content dissemination

Publications (1)

Publication Number Publication Date
ES2360647T3 true ES2360647T3 (es) 2011-06-07

Family

ID=37944613

Family Applications (1)

Application Number Title Priority Date Filing Date
ES06025429T Active ES2360647T3 (es) 2006-12-08 2006-12-08 Método y sistema para la diseminación del contenido igual a igual.

Country Status (5)

Country Link
US (1) US8341283B2 (es)
EP (1) EP1931108B1 (es)
AT (1) ATE498272T1 (es)
DE (1) DE602006020050D1 (es)
ES (1) ES2360647T3 (es)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7633887B2 (en) * 2005-01-21 2009-12-15 Panwar Shivendra S On demand peer-to-peer video streaming with multiple description coding
US20060224760A1 (en) * 2005-03-15 2006-10-05 1000 Oaks Hu Lian Technology Development (Beijing) Co., Ltd. Method and system for providing streaming content in a peer-to-peer network with network coding
US20060230107A1 (en) * 2005-03-15 2006-10-12 1000 Oaks Hu Lian Technology Development Co., Ltd. Method and computer-readable medium for multimedia playback and recording in a peer-to-peer network
US20060224758A1 (en) * 2005-03-15 2006-10-05 1000 Oaks Hu Lian Technology Development Co., Ltd. System and method for file header operation in a peer-to-peer network providing streaming services
TW200741493A (en) * 2006-04-18 2007-11-01 Benq Corp Systems and methods for discovering frequently accessed subtrees
US8738778B2 (en) * 2006-04-26 2014-05-27 Bittorrent, Inc. Peer-to-peer download and seed policy management
US7706260B2 (en) * 2006-04-26 2010-04-27 Bittorrent, Inc. End-system dynamic rate limiting of background traffic
US8386630B1 (en) * 2007-09-09 2013-02-26 Arris Solutions, Inc. Video-aware P2P streaming and download with support for real-time content alteration
US8015311B2 (en) * 2007-09-21 2011-09-06 Polytechnic Institute Of New York University Reducing or minimizing delays in peer-to-peer communications such as peer-to-peer video streaming
BRPI0822211A2 (pt) * 2008-02-27 2015-06-23 Thomson Licensing Sistema de transmissão ao vivo ponto a ponto clusterizado hierarquicamente decenentralizado
US20100153578A1 (en) * 2008-07-16 2010-06-17 Nokia Corporation Method and Apparatus for Peer to Peer Streaming
US8935355B2 (en) * 2008-10-02 2015-01-13 International Business Machines Corporation Periodic shuffling of data fragments in a peer-to-peer data backup and archival network
US8452886B2 (en) * 2008-12-04 2013-05-28 Microsoft Corporation Peer-to-peer packet scheduling algorithm
US7991906B2 (en) * 2008-12-09 2011-08-02 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Method of data request scheduling in peer-to-peer sharing networks
US8082356B2 (en) * 2008-12-09 2011-12-20 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Synchronizing buffer map offset in peer-to-peer live media streaming systems
EP2401868A1 (en) * 2009-02-24 2012-01-04 Telefonaktiebolaget L M Ericsson (PUBL) Personalized data distribution based on peer-to-peer content delivery
US8762461B2 (en) * 2009-06-17 2014-06-24 China Mobile Communications Corporation Method, system and device for searching active peer in P2P streaming media system
US8812657B2 (en) * 2010-04-15 2014-08-19 Qualcomm Incorporated Network-assisted peer discovery
US8825886B2 (en) * 2010-07-28 2014-09-02 Hong Kong Applied Science and Technology Research Institute Company Limited System and method for evaluating network transport effects on delivery of media content
US8898327B2 (en) * 2011-10-05 2014-11-25 Peerialism AB Method and device for arranging peers in a live streaming P2P network
CN103312740B (zh) * 2012-03-09 2018-04-17 腾讯科技(深圳)有限公司 一种p2p网络策略的生成方法和装置
US9219782B2 (en) * 2012-12-11 2015-12-22 Microsoft Technology Licensing, Llc Identifying seed computing devices using estimates in peer-to-peer networks
CN103874205B (zh) * 2012-12-12 2019-01-08 中兴通讯股份有限公司 数据的传输、接收方法及装置
KR101569510B1 (ko) * 2013-10-22 2015-11-17 네이버 주식회사 적응적 실시간 트랜스코딩 방법 및 이를 위한 스트리밍 서버
US10410244B2 (en) 2013-11-13 2019-09-10 Bi Science (2009) Ltd Behavioral content discovery
EP3072258B1 (en) * 2013-11-20 2019-11-06 Opanga Networks, Inc. Fractional pre-delivery of content to user devices
GB201407614D0 (en) * 2014-04-30 2014-06-11 Piksel Inc Content delivery system
US10298672B2 (en) * 2015-12-18 2019-05-21 Cisco Technology, Inc. Global contact-point registry for peer network devices
US10027673B2 (en) * 2016-01-04 2018-07-17 Bank Of America Corporation System for controlled data exchange in a file hosting service environment
US10291706B1 (en) * 2016-03-24 2019-05-14 EMC IP Holding Company LLC Container image distribution acceleration
US10805161B2 (en) * 2017-09-13 2020-10-13 Verizon Digital Media Services Inc. Rapid configuration propagation in a distributed multi-tenant platform
CN107979644B (zh) * 2017-11-30 2019-02-26 掌阅科技股份有限公司 防止高并发的信息包下载方法、电子设备、存储介质
CN109347968B (zh) * 2018-11-07 2021-09-24 网宿科技股份有限公司 一种下载资源文件的数据块的方法、设备和系统
US11102272B2 (en) * 2019-12-19 2021-08-24 Wangsu Science and Technology Co., Ltd. Method and device for downloading resource file

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6246975B1 (en) * 1996-10-30 2001-06-12 American Board Of Family Practice, Inc. Computer architecture and process of patient generation, evolution, and simulation for computer based testing system
US6920110B2 (en) * 2001-02-14 2005-07-19 Microsoft Corporation System and method for transferring data over a network
US7215678B1 (en) * 2000-04-10 2007-05-08 Switchcore, A.B. Method and apparatus for distribution of bandwidth in a switch
US6980518B1 (en) 2000-06-23 2005-12-27 International Business Machines Corporation Gossip-based reliable multicast message recovery system and method
JP2003208413A (ja) * 2002-01-17 2003-07-25 Fujitsu Ltd 資産情報の一元管理を行うコンピュータシステム
US20040107242A1 (en) 2002-12-02 2004-06-03 Microsoft Corporation Peer-to-peer content broadcast transfer mechanism
US6839740B1 (en) * 2002-12-27 2005-01-04 Veritas Operating Corporation System and method for performing virtual device I/O operations
US6823442B1 (en) * 2003-05-12 2004-11-23 3Pardata, Inc. Method of managing virtual volumes in a utility storage server system
US20050203851A1 (en) * 2003-10-25 2005-09-15 Macrovision Corporation Corruption and its deterrence in swarm downloads of protected files in a file sharing network
US20050091167A1 (en) * 2003-10-25 2005-04-28 Macrovision Corporation Interdiction of unauthorized copying in a decentralized network
US7769861B2 (en) * 2003-11-24 2010-08-03 International Business Machines Corporation Apparatus, system, and method for modeling for storage provisioning
US7756051B2 (en) * 2004-07-02 2010-07-13 Microsoft Corporation Content distribution using network coding
US7593333B2 (en) * 2004-07-07 2009-09-22 Microsoft Corporation Efficient one-to-many content distribution in a peer-to-peer computer network
TWI261447B (en) * 2004-08-30 2006-09-01 Rdc Semiconductor Co Ltd Security system for data processing
JP2006126894A (ja) * 2004-10-26 2006-05-18 Sony Corp コンテンツ配信方法、プログラムおよび情報処理装置
US8046426B2 (en) * 2004-12-30 2011-10-25 Massachusetts Institute Of Technology Random linear coding approach to distributed data storage
US7343468B2 (en) * 2005-04-14 2008-03-11 International Business Machines Corporation Method and apparatus for storage provisioning automation in a data center
US7920572B2 (en) * 2005-09-20 2011-04-05 Cisco Technology, Inc. Modifying operation of peer-to-peer networks based on integrating network routing information
US20070094279A1 (en) * 2005-10-21 2007-04-26 Nokia Corporation Service provision in peer-to-peer networking environment
JP2007316725A (ja) * 2006-05-23 2007-12-06 Hitachi Ltd 記憶領域管理方法及び管理計算機
US7587570B2 (en) * 2006-05-31 2009-09-08 International Business Machines Corporation System and method for providing automated storage provisioning
US7558797B2 (en) * 2006-06-30 2009-07-07 Microsoft Corporation Metadata structures for mass P2P file sharing

Also Published As

Publication number Publication date
US20080155120A1 (en) 2008-06-26
EP1931108B1 (en) 2011-02-09
US8341283B2 (en) 2012-12-25
ATE498272T1 (de) 2011-02-15
EP1931108A1 (en) 2008-06-11
DE602006020050D1 (de) 2011-03-24

Similar Documents

Publication Publication Date Title
ES2360647T3 (es) Método y sistema para la diseminación del contenido igual a igual.
US8005975B2 (en) Reducing or minimizing delays in peer-to-peer communications such as peer-to-peer video streaming
JP4738900B2 (ja) ピアツーピアコンピュータネットワーク内の効率的な一対多コンテンツ配信
US8606846B2 (en) Accelerating peer-to-peer content distribution
US20090100128A1 (en) Accelerating peer-to-peer content distribution
Li et al. Mutualcast: An efficient mechanism for one-to-many content distribution
US20130208620A1 (en) Network Multicast Peer Discovery Methods
JP6523447B2 (ja) 分散型コンテンツ配信ネットワークにおけるブロードキャスト送信中の適応ビットレート
US9591069B2 (en) Peer-to-peer assist for live media streaming
Hofstätter et al. Chordella-a hierarchical peer-to-peer overlay implementation for heterogeneous, mobile environments
KR100919254B1 (ko) 유디피 홀펀칭을 이용한 피어 대 피어 데이터 전송을 통해스트리밍 데이터를 분산 전송하는 분산 스트리밍 시스템 및그 방법
Payberah et al. Gradientv: Market-based p2p live media streaming on the gradient overlay
Skevik et al. Analysis of bittorrent and its use for the design of a p2p based streaming protocol for a hybrid cdn
Kelényi et al. Bursty content sharing mechanism for energy-limited mobile devices
Tysowski et al. Peer to peer content sharing on ad hoc networks of smartphones
Chiu On the performance of content delivery under competition in a stochastic unstructured peer-to-peer network
Melamed et al. Araneola: A scalable reliable multicast system for dynamic environments
Agarwal et al. Analysis and Implementation of Gossip‐Based P2P Streaming with Distributed Incentive Mechanisms for Peer Cooperation
US20110085615A1 (en) System of sharing data using transmission order
Small et al. On optimal peer-to-peer topology construction with maximum peer bandwidth contributions
Hoong et al. A Two-layer Super-Peer based P2P Live Media Streaming System.
Jia et al. Preferential attachment topology formation of the P2P IPTV system
JP2007006321A (ja) Vpnトンネル接続トポロジを決定する管理サーバ及びプログラム
Cai et al. Qcast: A qos-aware peer-to-peer streaming system with dht-based multicast
Sue et al. Access control mechanism using flexible multi‐layer structure for mesh‐based P2P live streaming systems