ES2405627T3 - Método y dispositivo para reducir el retardo de la reproducción de medios - Google Patents

Método y dispositivo para reducir el retardo de la reproducción de medios Download PDF

Info

Publication number
ES2405627T3
ES2405627T3 ES07846135T ES07846135T ES2405627T3 ES 2405627 T3 ES2405627 T3 ES 2405627T3 ES 07846135 T ES07846135 T ES 07846135T ES 07846135 T ES07846135 T ES 07846135T ES 2405627 T3 ES2405627 T3 ES 2405627T3
Authority
ES
Spain
Prior art keywords
node
user
time segment
nodes
program content
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
ES07846135T
Other languages
English (en)
Inventor
Hongguang Guan
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Application granted granted Critical
Publication of ES2405627T3 publication Critical patent/ES2405627T3/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
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • 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/1063Discovery through centralising entities
    • 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/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • 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
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/432Content retrieval operation from a local storage medium, e.g. hard-disk
    • H04N21/4325Content retrieval operation from a local storage medium, e.g. hard-disk by playing back content from the storage medium
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4788Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Un método para reducir el retardo de la reproducción de medios, que comprende: obtener, por un nodo de usuario, información de una lista de nodos que pueden proporcionar un contenido deprograma deseado; en el que el método se caracteriza porque comprende además: seleccionar un nodo activo entre todos los nodos que pueden proporcionar el contenido de programacorrespondiente a cada segmento de tiempo, respectivamente, donde el contenido del programa se reproduce enmás de un segmento de tiempo, y el nodo activo es el más cercano en distancia al nodo de usuario entre todos losnodos; almacenar el nodo activo de cada segmento de tiempo en una lista local de nodos; crear de antemano una conexión con cada nodo activo de la lista local, respectivamente; recibir datos de descarga continua del medio de contenido del programa correspondiente al segmento de tiemposeleccionado por el nodo de usuario desde el nodo activo del segmento de tiempo seleccionado, a través de unaconexión del mismo, y reproducir los datos de descarga continua del medio.

Description

Método y dispositivo para reducir el retardo de la reproducción de medios
Campo de la invención
La presente invención está relacionada con el campo de medios de descarga continua y, en particular, con un método y un dispositivo para reducir el retardo de la reproducción de medios.
Antecedentes
La tecnología de descarga continua es una tecnología que puede transferir flujos continuos de datos multimedia sobre una red IP. En la tecnología tradicional de reproducción, el cliente descarga un fichero completo desde el servidor para reproducirlo. La tecnología de descarga continua utiliza la transmisión simultánea, divide todo el fichero multimedia en múltiples paquetes comprimidos, y transmite los paquetes comprimidos al cliente secuencialmente en tiempo real. El usuario puede descomprimir los paquetes entrantes mientras descarga los paquetes comprimidos siguientes, ahorrando así tiempo. Con el desarrollo de las tecnologías informáticas, la tecnología de descarga continua se está aplicando cada vez más al Vídeo Bajo Demanda (VOD). La tecnología VOD convierte un programa de vídeo grabado en un fichero de vídeo digital que puede reproducirse directamente en un ordenador, por medio de una serie de procesos tales como la captura y la compresión, y almacena el fichero en un servidor web, estando así disponible para los usuarios. El usuario contempla los programas de vídeo y audio del proveedor de servicios de vídeo a través de un dispositivo de terminal, y puede reproducir el programa hacia delante, hacia atrás o hacer una pausa en el programa mientras ve el programa. El servicio VOD se caracteriza por su celeridad, comodidad e interacción. Con el aumento del ancho de banda de la red, el servicio VOD es cada vez más prometedor. El desarrollo de la televisión por el protocolo de Internet (IPTV) incentiva la popularidad de la aplicación de la tecnología de descarga continua.
Cuando se transmiten los datos de VOD en el sistema IPTV, el sistema tradicional de descarga continua presenta muchos defectos. El VOD impone un impacto excesivo sobre el servidor del IPTV, lo cual tiende a originar un fallo en un solo punto. Por tanto, se introduce una tecnología de Red de Distribución de Contenidos (CDN). La esencia de la tecnología CDN es impulsar el contenido desde el centro hasta el borde cercano al usuario, mejorando así eficazmente la Calidad del Servicio (QoS) del contenido y aliviando la presión en los dispositivos centrales y en las redes troncales. Por medio de la tecnología CDN, el servicio de contenidos cambia desde una sola estructura central a una estructura distribuida. Cuando el usuario hace clic sobre el programa, se puede obtener el contenido del medio deseado desde el servidor del borde más cercano al usuario. El usuario obtiene los recursos en el mismo servidor del borde cuando reproduce rápidamente hacia delante/hacia atrás o salta hacia delante/hacia atrás.
Con el rápido desarrollo de la tecnología de colega a colega (P2P) de los años recientes, la tecnología P2P se aplica cada vez más al servicio de descarga continua, por ejemplo, el software de descarga continua basado en P2P, tal como el PPLive y el PPStream. En virtud de las características del P2P, el nodo del usuario actúa como servidor para proporcionar contenidos y compartir la carga de los servidores, reforzando así la capacidad de ampliación del sistema y haciendo que los datos del medio se distribuyan más. En el sistema actual de descarga continua basado en P2P, cada nodo envía el contenido recibido a otros nodos, mientras recibe el contenido. Por tanto, el contenido proporcionado por cada nodo a otros nodos varía con el contenido observado por el nodo. Consecuentemente, con el fin de crear una conexión TCP, el usuario tiene que buscar la fuente de programas correspondiente nuevamente, mientras reproduce el medio rápidamente hacia delante/hacia atrás, o cuando salta hacia delante/hacia atrás.
La figura 1 es un diagrama esquemático del software de descarga continua PPLive. Cuando el usuario hace avanzar la barra de progreso del medio durante la reproducción, el usuario necesita solicitar primero la lista de usuarios en el servidor central, y después crea la correspondiente conexión TCP con el nodo relevante, para reproducir el medio de acuerdo con las condiciones actuales de reproducción. Esto prolonga el retardo de la reproducción del medio, e ignora la proximidad entre nodos. Por otra parte, el servidor central necesita seguir actualizando el contenido proporcionado por cada nodo, aumentando así la carga del servidor central. Además, cada nodo de usuario almacena solamente una pequeña parte del contenido del medio. En este caso, si un usuario desea acceder a un programa completo, el usuario tiene que acceder a múltiples nodos de usuario antes de obtener los recursos completos. Cuando el usuario reproduce rápidamente hacia delante y rápidamente hacia atrás o hace avanzar la barra de progreso, el usuario puede necesitar abarcar nodos diferentes que proporcionen contenidos de programa, buscar nuevamente la fuente del programa y crear una conexión TCP, lo cual prolonga aún más el retardo de la reproducción del medio.
Después de que el usuario haga avanzar la barra de progreso del medio en una red basada en CDN, el usuario sigue obteniendo los recursos desde el mismo servidor, y no necesita buscar nuevamente el servidor ni crear una conexión TCP. Por tanto, el retardo de la reproducción es alrededor de 2 - 3 segundos. Sin embargo, después de que el usuario haga avanzar la barra de progreso en una red basada en P2P, el usuario necesita buscar nuevamente el servidor y crear una conexión TCP, y el retardo de la reproducción es más de 5 segundos si se considera el tiempo de reproducción de la memoria intermedia, lo cual es inaceptable para el usuario.
El documento D1 describe un marco de trabajo de colega a colega (P2P) para una descarga continua bajo demanda rentable, denominado BitVampire. El objetivo principal de diseño de BitVampire es agregar el almacenamiento de los colegas y los anchos de banda para facilitar la descarga continua del medio bajo demanda. Para conseguir el objetivo, BitVampire divide los vídeos publicados en segmentos y los distribuye a diferentes colegas. Cuando un colega (o un receptor) desea observar un vídeo, busca los segmentos correspondientes y busca egoístamente el mejor subconjunto de colegas suministradores y descarga en paralelo el contenido del medio deseado desde estos colegas en un modo de tiempo real. En BitVampire, los colegas participantes se ayudan entre sí para obtener el contenido deseado, por tanto no son necesarios potentes servidores/proxies, lo cual la convierte en una solución rentable.
El documento D2 proporciona un método y un medio legible por ordenador para la reproducción y grabación de medios en una red de colega a colega. En un modo de realización, un cliente de una red de colega a colega recibe una pluralidad de bloques de datos que incluyen respectivamente una parte del contenido. Uno o más de la pluralidad de bloques de datos son seleccionados pseudo-aleatoriamente, y el bloque de datos seleccionado es almacenado después. En otro modo de realización, se obtiene una posición de reproducción deseada del contenido de descarga continua, y se obtiene un primer número de secuencia del bloque de datos en curso del contenido de descarga continua, después se hace una estimación del segundo número de secuencia que corresponde a la posición de reproducción deseada. Se hace una conexión con el cliente colega que tenga un bloque de datos con el segundo número de secuencia asociado con él, y se recibe el bloque de datos desde el cliente colega. De acuerdo con los modos de realización, se consigue la reproducción de la sesión de descarga continua desde el punto dentro de la sesión en el cual se unió un cliente a la sesión.
Sumario
Se divulga un método y un dispositivo para reducir el retardo de la reproducción de medios en un modo de realización de la presente invención, para superar el retardo causado por le transferencia entre nodos, cuando el usuario hace avanzar la barra de progreso en el proceso de reproducción de un programa de descarga continua basado en P2P.
Los modos de realización de la presente invención se satisfacen por medio de la solución técnica siguiente.
Un método para reducir el retardo de la reproducción de medios incluye lo siguiente:
obtener, por un nodo de usuario, información de una lista de nodos que pueden proporcionar los contenidos de programas deseados;
seleccionar un nodo activo entre todos los nodos que pueden proporcionar un contenido de programa correspondiente a cada segmento de tiempo, respectivamente, donde el contenido del programa se reproduce en más de un segmento de tiempo, y el nodo activo es el más cercano en distancia al nodo de usuario entre todos los nodos,
almacenar el nodo activo de cada segmento de tiempo en una lista local de nodos;
crear de antemano una conexión con cada nodo activo de la lista local, respectivamente;
recibir datos de descarga continua del medio de contenido del programa correspondiente al segmento de tiempo seleccionado por el nodo de usuario desde el nodo activo del segmento de tiempo seleccionado, a través de una conexión del mismo, y reproducir los datos de descarga continua del medio.
Un dispositivo para reducir el retardo de la reproducción de medios incluye lo siguiente:
un módulo de obtención de información de nodos, adaptado para obtener información de una lista de nodos que puedan proporcionar un contenido de programa deseado por el nodo del usuario;
un módulo de selección del mejor nodo, adaptado para seleccionar un nodo activo entre todos los nodos que puedan proporcionar un contenido de programas correspondiente a cada segmento de tiempo, respectivamente, donde el contenido del programa se reproduce en más de un segmento de tiempo, y el nodo activo es el más cercano en distancia al nodo de usuario entre todos los nodos, almacenando el nodo activo de cada segmento de tiempo en una lista local de nodos;
un módulo de creación de conexiones, adaptado para crear de antemano una conexión con cada nodo activo en la lista local, respectivamente; y
un módulo de reproducción, adaptado para recibir los datos de descarga continua del medio de un contenido de programas correspondiente al segmento de tiempo seleccionado por el nodo de usuario, desde un nodo activo del segmento de tiempo seleccionado a través de una conexión del mismo, y reproducir los datos de descarga continua del medio.
La solución técnica de la presente invención revela que en un modo de realización de la presente invención, se selecciona el mejor nodo para proporcionar el contenido del programa, reforzando así considerablemente la QoS del VOD; el nodo de usuario crea de antemano una conexión TCP con el nodo mejor de la lista local de nodos, reduciendo así significativamente el retardo de la reproducción de medios de descarga continua cuando el usuario hace avanzar la barra de progreso.
Breve descripción de los dibujos
La figura 1 es un diagrama esquemático del software PPLive de descarga continua de la técnica anterior;
La figura 2 es un diagrama de flujo de un método para reducir el retardo de la reproducción de medios, en un modo de realización de la presente invención;
La figura 3 muestra cómo un usuario hace avanzar una barra de progreso de la reproducción, en un modo de realización de la presente invención; y
La figura 4 muestra una estructura de un dispositivo para reducir el retardo de la reproducción de medios, en un modo de realización de la presente invención.
Descripción detallada
La presente invención se describe en detalle de aquí en adelante, con referencia a modos de realización preferidos y a los dibujos que se acompañan, los cuales, sin embargo, no pretenden limitar la presente invención.
La tecnología P2P se caracteriza porque el usuario recibe contenidos al tiempo que proporciona contenidos a otros. Por tanto, en un modo de realización de la presente invención, se fijan dos memorias intermedias en el nodo del usuario. Una memoria intermedia se define como memoria intermedia receptora, adaptada para recibir y almacenar los datos de la descarga continua del medio para la reproducción, y la otra se define como memoria intermedia compartida, adaptada para proporcionar servicios de medios para otros nodos. Además, la memoria intermedia compartida almacena el contenido del programa disponible para otros sub-nodos, donde el contenido del programa permanece inalterado durante un tiempo más bien largo. Después de que el contenido del programa almacenado en la memoria intermedia compartida del nodo del usuario esté registrado en la red P2P, el usuario no necesita buscar nuevamente cuando hace avanzar la barra de progreso durante la reproducción, ni gastar tiempo adicional en hacer un seguimiento del cambio dinámico de la memoria intermedia del nodo.
Cuando el nodo del usuario desea reproducir un contenido de programa bajo demanda en un modo de realización de la presente invención, el nodo de usuario obtiene una lista de nodos que pueden proporcionar el contenido del programa desde la red de Tablas Distribuidas de Generación de Claves (DHT) o del servidor central en primer lugar, y después selecciona el mejor nodo de tales nodos. Si hay otros muchos nodos de usuario que pueden proporcionar también el contenido del programa, se compara el rendimiento entre tales nodos y, por medio de la medición del Tiempo de Ida y Vuelta (RTT), se selecciona el nodo más cercano a uno de los nodos de usuario precedentes para proporcionar el contenido del programa. La información sobre tales nodos de usuario se almacena en la lista local de nodos del nodo de usuario seleccionado, y se crea de antemano la conexión TCP con todos los nodos que proporcionan el contenido del programa, con el fin de mantener la comunicación con otros nodos de usuario y de ahorrar tiempo cuando el usuario hace avanzar la barra de progreso de la reproducción.
Se expone a continuación el método para reducir el retardo de la reproducción de medios cuando el usuario reproduce un programa por medio del VOD en un modo de realización de la presente invención. Como se ilustra en la figura 2, el método incluye los pasos siguientes:
Paso 101: La información sobre el contenido de programas disponibles para cada nodo de usuario se entrega a la memoria intermedia compartida de cada nodo de usuario.
El contenido de programas puede ser entregado por un súper-nodo. Los principios de la entrega son que los contenidos de programas son entregados a los nodos de usuario que están en línea durante un periodo largo y son relativamente estables.
Paso 102: A través de una red DHT o un servidor central, el nodo de usuario obtiene una lista de nodos que contienen el contenido del programa, cuando el usuario necesita reproducir un contenido de programa.
Paso 103: Por medio de la medición RTT, el nodo de usuario mide la distancia a cada nodo que contiene el mismo contenido del programa en la lista de nodos, y almacena el valor de la distancia en la lista local de nodos del nodo de usuario, donde el valor de la distancia sirve como datos para medir la proximidad entre los nodos.
La medición RTT puede ser realizada por medio de órdenes Ping de verificación de paquetes o mensajes de medición de la capa de aplicaciones.
Paso 104: El nodo de usuario selecciona el mejor nodo y el segundo mejor nodo entre todos los nodos que pueden proporcionar el contenido del programa correspondiente a cada segmento de tiempo, de acuerdo con el parámetro de distancia de la lista local de nodos, donde el contenido del programa se reproduce en más de un segmento de tiempo. El mejor nodo es el más cercano al nodo del usuario, y el segundo mejor nodo es el segundo más cercano al nodo del usuario, entre todos los nodos. Después, todos los mejores nodos sirven como nodos activos que proporcionan el contenido del programa en cada segmento de tiempo, y todos los segundos mejores nodos sirven como nodos de espera que proporcionan el mismo contenido del programa, y son almacenados conjuntamente en la lista local de nodos del nodo del usuario.
Paso 105: El nodo del usuario crea una conexión TCP con cada nodo activo en la lista local de nodos. Cuando un nodo activo no está en línea, el nodo del usuario crea una conexión TCP con el nodo de espera del nodo activo que ya no está en línea, o busca un nuevo nodo activo para sustituir el nodo activo que ya no está en línea y crea una conexión TCP con él.
Paso 106: A través de una memoria intermedia receptora, el nodo del usuario recibe los datos de la descarga continua del medio desde el nodo activo y reproduce los datos de la descarga continua del medio.
Cuando el usuario hace avanzar la barra de progreso de la reproducción en cada segmento de tiempo de un contenido del programa, como el nodo del usuario ha creado una conexión TCP con el nodo activo de cada segmento de tiempo, el nodo del usuario puede recibir los datos de la descarga continua del medio rápidamente desde el nodo activo o el nodo de espera correspondientes al segmento de tiempo seleccionado tras una operación de avance, acortando así el retardo originado por la transferencia.
Con el fin de hacer más clara la solución técnica de este modo de realización, se detalla a continuación el modo de realización con los ejemplos siguientes.
La figura 3 muestra cómo un usuario hace avanzar la barra de progreso de una reproducción. En la figura 3, cinco nodos continuos A, B, C, D y E componen los datos completos del medio de un programa VOD. Los nodos G y F tienen el mismo contenido del programa que los nodos A y C. La distancia desde los nodos G y F al nodo de usuario actual es mayor que la distancia desde los nodos A y C al nodo de usuario actual, y los nodos G y F sirven como nodos de espera de los nodos A y C. La tabla 1 es una lista local de nodos almacenada en el nodo actual del usuario. El valor métrico se obtiene por medio del valor medido del RTT o se indica directamente con el tiempo medido del RTT.
Nodo Activo
Métrica Nodo en espera Métrica
A
2 G 4
B
3
C
3 F 5
D
2
E
3
Tabla 1
En el instante T1, el usuario observa el programa; en el instante T2, el usuario observa los recursos proporcionados por el nodo A (indicado por la punta de la flecha sólida de la figura 3), y se crea una pre-conexión TCP (indicada por la punta de la flecha en línea de puntos de la figura 3), entre el nodo del usuario y los nodos B, C, D y E respectivamente, y se denomina estado de “conexión mantenida viva”. Cuando el usuario salta desde el instante T2 al instante T3 directamente, es decir, cuando el usuario hace avanzar la barra de progreso, el contenido lo proporciona el nodo C. Como el nodo del usuario ha creado una conexión TCP con el nodo C, el nodo del usuario obtiene recursos desde el nodo C directamente, ahorrando así el tiempo de búsqueda y creando una conexión TCP y cambiando la conexión con el nodo A, para mantener el estado de conexión mantenida viva. Cuando falla un nodo, el usuario puede crear una conexión TCP con el nodo en espera, que contiene el mismo contenido del programa. Si no existe un nodo en espera, el usuario busca el nodo activo y el nodo en espera nuevamente, a través de la red DHT o del servidor. Cuando el usuario comienza a reproducir el programa VOD, si el nodo de la lista de nodos obtenida desde la red P2P no puede proporcionar el contenido completo del VOD (por ejemplo, en la figura 3, solamente se obtienen cuatro nodos A, B, D y E, y no se obtiene el nodo C por ciertas razones tales como una desconexión abrupta), el usuario puede buscar en la red P2P las fuentes del programa intermitentemente durante la reproducción del VOD. Si se descubre un nuevo nodo que proporciona el contenido del programa, el usuario puede buscar además el nodo mejor, y añadir el nodo mejor a la lista local de nodos y crear una conexión TCP.
El nodo mejor y el segundo nodo mejor pueden ser encontrados no solamente por medio del método de medición del RTT, sino también calculando el número de saltos de la ruta basándose en los principios siguientes: El nodo del usuario calcula el número de saltos de la ruta entre el nodo del usuario y todos los demás nodos que contienen el mismo contenido del programa en cada segmento de tiempo, y encuentra dos nodos (es decir, el nodo mejor y el segundo nodo mejor) de acuerdo con el número de saltos de la ruta, donde los dos nodos contienen el mismo
5 contenido del programa en cada segmento de tiempo, el número de saltos a lo largo de la ruta entre el nodo del usuario y uno de los dos nodos es el menor, y el número de saltos a lo largo de la ruta entre el nodo del usuario y el otro nodo es el menor menos uno. El método para reducir el retardo de la reproducción del medio calculando el número de saltos de la ruta es exactamente el mismo que en el modo de realización anterior, y ya no se repite aquí.
Como se ilustra en la figura 4, un dispositivo para reducir el retardo de la reproducción de medios en un modo de 10 realización de la presente invención incluye:
un módulo de obtención de información de nodos, adaptado para obtener información de una lista de nodos que puedan proporcionar un contenido de programa deseado a través de una red DHT o un servidor central;
un módulo de selección del mejor nodo, adaptado para: seleccionar un nodo mejor y un segundo nodo mejor entre todos los nodos que puedan proporcionar el mismo contenido del programa correspondiente a cada segmento de
15 tiempo, donde el contenido del programa se reproduce en más de un segmento de tiempo, y el nodo mejor es el más cercano en distancia al módulo de selección del nodo mejor entre todos los nodos, y el segundo nodo mejor es el segundo más cercano al módulo de selección del nodo mejor entre todos los nodos; y almacenar el nodo mejor localmente como nodo activo, y almacenar el segundo nodo mejor localmente como un nodo en espera en cada segmento de tiempo;
20 un módulo de creación de conexiones, adaptado para: crear una conexión TCP con cada nodo activo almacenado localmente; y crear una conexión TCP con el nodo en espera correspondiente al nodo activo, cuando la conexión TCP con el nodo activo falla por razones tales como un fallo del nodo activo; y
un módulo de reproducción, adaptado para: recibir los datos de descarga continua del medio del contenido de programas del nodo mejor o del nodo en espera, y reproducir los datos de descarga continua del medio.
25 El dispositivo puede incluir además:
un primer módulo de memoria intermedia, adaptado para almacenar contenidos de programas que pueden ser proporcionados para otros nodos, y proporcionar servicios de medios para otros nodos; y
un segundo módulo de memoria intermedia, adaptado para almacenar los datos del flujo continuo del medio recibidos.

Claims (10)

  1. REIVINDICACIONES
    1. Un método para reducir el retardo de la reproducción de medios, que comprende:
    obtener, por un nodo de usuario, información de una lista de nodos que pueden proporcionar un contenido de programa deseado;
    en el que el método se caracteriza porque comprende además:
    seleccionar un nodo activo entre todos los nodos que pueden proporcionar el contenido de programa correspondiente a cada segmento de tiempo, respectivamente, donde el contenido del programa se reproduce en más de un segmento de tiempo, y el nodo activo es el más cercano en distancia al nodo de usuario entre todos los nodos;
    almacenar el nodo activo de cada segmento de tiempo en una lista local de nodos;
    crear de antemano una conexión con cada nodo activo de la lista local, respectivamente;
    recibir datos de descarga continua del medio de contenido del programa correspondiente al segmento de tiempo seleccionado por el nodo de usuario desde el nodo activo del segmento de tiempo seleccionado, a través de una conexión del mismo, y reproducir los datos de descarga continua del medio.
  2. 2.
    El método para reducir el retardo de la reproducción de medios, de acuerdo con la reivindicación 1, en el que el proceso en el que el nodo del usuario obtiene información sobre la lista de nodos que pueden proporcionar el contenido deseado del programa comprende:
    obtener, por el nodo de usuario, la información sobre la lista de nodos que pueden proporcionar el contenido del programa deseado a través de una red de Tablas Distribuidas de Generación de Claves, DHT, o de un servidor central.
  3. 3.
    El método para reducir el retardo de la reproducción de medios, de acuerdo con la reivindicación 1, que comprende además:
    medir, por el nodo de usuario, la distancia entre el nodo del usuario y cada nodo que pueda proporcionar el contenido del programa correspondiente a cada segmento de tiempo, midiendo el tiempo de ida y vuelta, seleccionando los dos nodos más cercanos al nodo de usuario, utilizando el nodo más cercano como nodo activo de cada segmento de tiempo, y utilizando el segundo nodo más cercano como nodo de espera de cada segmento de tiempo y almacenar el nodo activo y el nodo de espera de cada segmento de tiempo en la lista local de nodos.
  4. 4.
    El método para reducir el retardo de la reproducción de medios, de acuerdo con la reivindicación 1, que comprende además:
    calcular, por el nodo del usuario, la distancia entre el nodo del usuario y cada nodo que pueda proporcionar el contenido del programa correspondiente a cada segmento de tiempo por medio del número de saltos de una ruta, seleccionar dos nodos con el menor y un segundo menor número de saltos de la ruta alejada del nodo del usuario, utilizar el nodo con el menor número de saltos como nodo activo y utilizar el nodo con el segundo número menor de saltos como nodo de espera de cada segmento de tiempo, y almacenar el nodo activo y el nodo de espera de cada segmento de tiempo en la lista local de nodos.
  5. 5.
    El método para reducir el retardo de la reproducción de medios, de acuerdo con la reivindicación 3 o la reivindicación 4, que comprende además:
    crear una conexión con un nodo de espera correspondiente al nodo activo, cuando falla la conexión entre el nodo del usuario y el nodo activo.
  6. 6.
    El método para reducir el retardo de la reproducción de medios, de acuerdo con la reivindicación 5, que comprende además:
    recibir, por el nodo de usuario, los datos del flujo de descarga continua del medio desde el nodo activo o el nodo de espera que ya está conectado con el nodo del usuario y se corresponde con un segmento de tiempo reseleccionado, después de que el nodo del usuario haya re-seleccionado un segmento de tiempo entre más de un segmento de tiempo del contenido del programa.
  7. 7.
    Un dispositivo para reducir el retardo de la reproducción de medios, que comprende:
    un nodo de obtención de información, adaptado para obtener información de una lista de nodos que pueden proporcionar un contenido de programa deseado por un nodo de usuario;
    en el que el dispositivo se caracteriza porque comprende además:
    un módulo de selección del mejor nodo, adaptado para seleccionar un nodo activo entre todos los nodos que puedan proporcionar el contenido del programa correspondiente a cada segmento de tiempo, respectivamente, donde el contenido del programa se reproduce en más de un segmento de tiempo, y el nodo activo es el más cercano en
    5 distancia al nodo de usuario entre todos los nodos, almacenando el nodo activo de cada segmento de tiempo en una lista local de nodos;
    un módulo de creación de conexiones, adaptado para crear de antemano una conexión con cada nodo activo de la lista local, respectivamente; y
    un módulo de reproducción, adaptado para recibir los datos del flujo de descarga continua del medio de un
    10 contenido de programas correspondiente al segmento de tiempo seleccionado por el nodo de usuario, desde el nodo activo del segmento de tiempo seleccionado a través de la conexión del mismo, y reproducir los datos de descarga continua del medio.
  8. 8. El dispositivo para reducir el retardo de la reproducción de medios, de acuerdo con la reivindicación 7, en el que:
    15 el módulo de obtención de información de nodos obtiene la información de una lista de todos los nodos que puedan proporcionar el contenido de programa deseado, a través de una red de Tablas Distribuidas de Generación de Claves, DHT, o un servidor central.
  9. 9. El dispositivo para reducir el retardo de la reproducción de medios, de acuerdo con la reivindicación 7 o la reivindicación 8, en el que:
    20 el módulo de selección del mejor nodo está adaptado además para: seleccionar un segundo nodo mejor entre todos los nodos que puedan proporcionar el contenido de programas correspondiente a cada segmento de tiempo, donde el segundo nodo mejor es el segundo más cercano al módulo de selección del nodo mejor entre todos los nodos; utilizar el nodo mejor como nodo activo en cada segmento de tiempo y utilizar el segundo nodo mejor como nodo de espera de cada segmento de tiempo, y almacenar el nodo activo y el nodo de espera de cada segmento de tiempo
    25 en la lista local de nodos.
  10. 10. El dispositivo para reducir el retardo de la reproducción de medios, de acuerdo con la reivindicación 9, en el que:
    el módulo de creación de conexiones está adaptado para crear la conexión con el nodo de espera correspondiente al nodo activo, cuando falla la conexión con el nodo activo.
ES07846135T 2006-12-31 2007-12-21 Método y dispositivo para reducir el retardo de la reproducción de medios Active ES2405627T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN200610171596 2006-12-31
CN2006101715967A CN101005606B (zh) 2006-12-31 2006-12-31 一种减少媒体播放延时的方法和装置
PCT/CN2007/071309 WO2008080343A1 (fr) 2006-12-31 2007-12-21 Procédé et appareil pour réduire un retard de lecture multimédia

Publications (1)

Publication Number Publication Date
ES2405627T3 true ES2405627T3 (es) 2013-05-31

Family

ID=38704427

Family Applications (1)

Application Number Title Priority Date Filing Date
ES07846135T Active ES2405627T3 (es) 2006-12-31 2007-12-21 Método y dispositivo para reducir el retardo de la reproducción de medios

Country Status (5)

Country Link
US (1) US8055793B2 (es)
EP (1) EP2053859B1 (es)
CN (1) CN101005606B (es)
ES (1) ES2405627T3 (es)
WO (1) WO2008080343A1 (es)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9549043B1 (en) 2004-07-20 2017-01-17 Conviva Inc. Allocating resources in a content delivery environment
US10862994B1 (en) 2006-11-15 2020-12-08 Conviva Inc. Facilitating client decisions
US9325786B2 (en) * 2006-07-27 2016-04-26 The Hong Kong University Of Science And Technology Peer-to-peer interactive media-on-demand
US8751605B1 (en) 2006-11-15 2014-06-10 Conviva Inc. Accounting for network traffic
US9264780B1 (en) 2006-11-15 2016-02-16 Conviva Inc. Managing synchronized data requests in a content delivery network
US8874725B1 (en) 2006-11-15 2014-10-28 Conviva Inc. Monitoring the performance of a content player
US9124601B2 (en) 2006-11-15 2015-09-01 Conviva Inc. Data client
CN101005606B (zh) 2006-12-31 2012-07-04 华为技术有限公司 一种减少媒体播放延时的方法和装置
CN101083605B (zh) * 2007-08-01 2011-07-06 华为技术有限公司 一种媒体源快速切换的方法、***和装置
CN101389017B (zh) * 2007-09-14 2011-11-30 中兴通讯股份有限公司 一种移动流媒体直播业务中保存媒体文件的方法
CN101146110B (zh) * 2007-09-25 2011-06-29 深圳市迅雷网络技术有限公司 一种播放流媒体的方法
CN101179705B (zh) * 2007-11-29 2011-04-20 中兴通讯股份有限公司 伙伴资源节点选择方法和装置
CN101242430B (zh) * 2008-02-22 2012-03-28 华中科技大学 对等网络点播***中的定点数据预取方法
CN101534475B (zh) * 2008-03-10 2012-02-01 联想移动通信科技有限公司 一种流媒体业务接收装置和方法及移动终端
CN101588468B (zh) * 2008-05-20 2013-08-07 华为技术有限公司 一种基于p2p的媒体播放方法、装置和***
CN101296152B (zh) * 2008-06-26 2012-08-29 腾讯科技(深圳)有限公司 对等连接网络的数据调度方法和***
CN101378494B (zh) * 2008-10-07 2011-04-20 中兴通讯股份有限公司 一种实现互联网电视媒体交互的***及方法
US8402494B1 (en) 2009-03-23 2013-03-19 Conviva Inc. Switching content
CN101854374A (zh) * 2009-04-01 2010-10-06 日电(中国)有限公司 数据节点装置、对端信息获取方法和***
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
US9100288B1 (en) * 2009-07-20 2015-08-04 Conviva Inc. Augmenting the functionality of a content player
KR101562974B1 (ko) 2009-09-07 2015-10-30 삼성전자 주식회사 스트리밍 서비스의 지연 감소를 위한 단말기, 시드 서버 및 트랙커 서버
KR101568288B1 (ko) * 2009-09-21 2015-11-12 삼성전자주식회사 데이터 수신 장치 및 방법
CA2824723A1 (en) * 2009-09-26 2011-03-31 Disternet Technology Inc. System and method for micro-cloud computing
JP2013516854A (ja) * 2010-01-04 2013-05-13 アルカテル−ルーセント Iptvシステムのためのエッジコンテンツ配信デバイスおよびコンテンツ配信ネットワーク
CN102347937B (zh) * 2010-08-02 2014-06-04 杭州华三通信技术有限公司 一种发送流媒体数据的方法及虚拟管理器
CN101945254B (zh) * 2010-09-15 2012-05-30 中国科学院声学研究所 一种基于虚拟直播源的分布式流媒体点播方法
CN102447974B (zh) * 2011-11-03 2014-04-09 苏州大学 一种p2p视频点播***合作数据预取方法
US8843758B2 (en) * 2011-11-30 2014-09-23 Microsoft Corporation Migrating authenticated content towards content consumer
CN102595207B (zh) * 2012-01-10 2015-09-23 深圳市同洲电子股份有限公司 一种内容分发***、内容分发方法及内容分发装置
US9613042B1 (en) 2012-04-09 2017-04-04 Conviva Inc. Dynamic generation of video manifest files
US9246965B1 (en) 2012-09-05 2016-01-26 Conviva Inc. Source assignment based on network partitioning
US10182096B1 (en) 2012-09-05 2019-01-15 Conviva Inc. Virtual resource locator
CN103036790A (zh) * 2012-12-31 2013-04-10 乐视网信息技术(北京)股份有限公司 一种引入节点带宽条件约束的p2p节点选择方法
CN103152611B (zh) * 2013-02-18 2018-04-27 中兴通讯股份有限公司 一种流媒体管道业务的控制方法和装置
CN104702579B (zh) 2013-12-09 2018-10-12 华为技术有限公司 用于确定用户设备的缓存状态的方法及装置
CN103997623B (zh) * 2014-05-06 2017-05-03 四川长虹电器股份有限公司 基于p2p技术的视频监控方法
CN104284201A (zh) * 2014-09-26 2015-01-14 北京奇艺世纪科技有限公司 一种视频内容的处理方法和装置
CN104301454A (zh) * 2014-11-13 2015-01-21 国家电网公司 一种域名解析重定向的方法、装置以及智能域名***
US10178043B1 (en) 2014-12-08 2019-01-08 Conviva Inc. Dynamic bitrate range selection in the cloud for optimized video streaming
US10305955B1 (en) 2014-12-08 2019-05-28 Conviva Inc. Streaming decision in the cloud
CN105743950B (zh) * 2014-12-11 2019-11-19 深圳市腾讯计算机***有限公司 数据缓存方法、装置及电子设备
CN108337283B (zh) * 2017-01-20 2022-04-15 创盛视联数码科技(北京)有限公司 一种iOS推流中获取最优推流节点的方法
CN110290394A (zh) * 2019-07-15 2019-09-27 宁波华数广电网络有限公司 一种视频点播***及方法
CN111225242A (zh) * 2020-01-17 2020-06-02 广州酷狗计算机科技有限公司 视频播放容灾方法、装置及计算机存储介质
CN112040332B (zh) * 2020-08-19 2022-02-11 天津智融创新科技发展有限公司 平滑cdn带宽的视频内容的获取方法和***
CN114245147B (zh) * 2022-02-24 2022-04-26 檀沐信息科技(深圳)有限公司 流媒体内容分发方法及***

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6084581A (en) * 1996-05-10 2000-07-04 Custom Communications, Inc. Method of creating individually customized videos
US6788315B1 (en) * 1997-11-17 2004-09-07 Fujitsu Limited Platform independent computer network manager
US6377972B1 (en) * 1999-01-19 2002-04-23 Lucent Technologies Inc. High quality streaming multimedia
JP4299911B2 (ja) * 1999-03-24 2009-07-22 株式会社東芝 情報転送システム
US7574499B1 (en) * 2000-07-19 2009-08-11 Akamai Technologies, Inc. Global traffic management system using IP anycast routing and dynamic load-balancing
US8060581B2 (en) * 2000-07-19 2011-11-15 Akamai Technologies, Inc. Dynamic image delivery system
US7912978B2 (en) * 2000-07-19 2011-03-22 Akamai Technologies, Inc. Method for determining metrics of a content delivery and global traffic management network
US7689510B2 (en) * 2000-09-07 2010-03-30 Sonic Solutions Methods and system for use in network management of content
US20040039934A1 (en) * 2000-12-19 2004-02-26 Land Michael Z. System and method for multimedia authoring and playback
US7146429B2 (en) * 2001-03-16 2006-12-05 The Aerospace Corporation Cooperative adaptive web caching routing and forwarding web content data requesting method
US7555561B2 (en) * 2001-03-19 2009-06-30 The Aerospace Corporation Cooperative adaptive web caching routing and forwarding web content data broadcasting method
US7272645B2 (en) * 2001-05-25 2007-09-18 Sbc Technology Resources, Inc. Method of improving the reliability of peer-to-peer network downloads
US7054867B2 (en) * 2001-09-18 2006-05-30 Skyris Networks, Inc. Systems, methods and programming for routing and indexing globally addressable objects and associated business models
CA2411806A1 (en) * 2001-11-16 2003-05-16 Telecommunications Research Laboratory Wide-area content-based routing architecture
US8392609B2 (en) * 2002-09-17 2013-03-05 Apple Inc. Proximity detection for media proxies
US7065376B2 (en) * 2003-03-20 2006-06-20 Microsoft Corporation Multi-radio unification protocol
US7827279B2 (en) * 2004-01-30 2010-11-02 Hewlett-Packard Development Company, L.P. Selecting nodes close to another node in a network using location information for the nodes
US9160571B2 (en) * 2004-03-11 2015-10-13 Hewlett-Packard Development Company, L.P. Requesting a service from a multicast network
US7418454B2 (en) * 2004-04-16 2008-08-26 Microsoft Corporation Data overlay, self-organized metadata overlay, and application level multicasting
US7340453B2 (en) * 2004-07-30 2008-03-04 International Business Machines Corporation Microeconomic mechanism for distributed indexing
WO2006066052A2 (en) * 2004-12-16 2006-06-22 Sonic Solutions Methods and systems for use in network management of content
WO2006068365A1 (en) * 2004-12-21 2006-06-29 Electronics And Telecommunications Research Institute P2p overlay network construction method and apparatus
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
US20070156855A1 (en) * 2005-06-17 2007-07-05 Moses Johnson Channel searching media player
US20070005694A1 (en) * 2005-06-30 2007-01-04 Pando Networks, Inc. System and method for distributed multi-media production, sharing and low-cost mass publication
US7920572B2 (en) * 2005-09-20 2011-04-05 Cisco Technology, Inc. Modifying operation of peer-to-peer networks based on integrating network routing information
US7664742B2 (en) * 2005-11-14 2010-02-16 Pettovello Primo M Index data structure for a peer-to-peer network
US7801912B2 (en) * 2005-12-29 2010-09-21 Amazon Technologies, Inc. Method and apparatus for a searchable data service
US8170395B2 (en) * 2006-05-07 2012-05-01 Wellcomemat Llc Methods and systems for handling montage video data
US8307286B2 (en) * 2006-05-07 2012-11-06 Wellcomemat Llc Methods and systems for online video-based property commerce
CN100536420C (zh) * 2006-05-29 2009-09-02 华中科技大学 一种流媒体点播***中时间相关的对等网络组织方法
CN101005606B (zh) * 2006-12-31 2012-07-04 华为技术有限公司 一种减少媒体播放延时的方法和装置

Also Published As

Publication number Publication date
US8055793B2 (en) 2011-11-08
CN101005606A (zh) 2007-07-25
US20090164656A1 (en) 2009-06-25
WO2008080343A1 (fr) 2008-07-10
EP2053859A4 (en) 2010-01-13
CN101005606B (zh) 2012-07-04
EP2053859B1 (en) 2013-02-27
EP2053859A1 (en) 2009-04-29

Similar Documents

Publication Publication Date Title
ES2405627T3 (es) Método y dispositivo para reducir el retardo de la reproducción de medios
US9325786B2 (en) Peer-to-peer interactive media-on-demand
ES2763998T3 (es) Procesado de datos multimedia
US8667164B2 (en) Method and apparatus for playing live content
US8838823B2 (en) Performance aware peer-to-peer content-on-demand
US11178200B2 (en) Systems and methods for playing adaptive bitrate streaming content by multicast
KR20110095231A (ko) 피어 투 피어 스트리밍을 위한 방법 및 장치
KR101470111B1 (ko) Iptv 시스템을 위한 엣지 콘텐츠 전달 장치 및 콘텐츠 전달 네트워크
JP6523447B2 (ja) 分散型コンテンツ配信ネットワークにおけるブロードキャスト送信中の適応ビットレート
US20150188963A1 (en) Systems and Methods for Distributing Adaptive Bitrate Streaming Content by Multicast
Pouwelse et al. Real-time video delivery using peer-to-peer bartering networks and multiple description coding
JP2004088315A (ja) コンテンツ配信システム、エッジサーバ及び端末装置
JP5096027B2 (ja) コンテンツ配信システムおよびコンテンツ配信方法
WO2009135374A1 (zh) Iptv媒体交付***、iptv媒体内容发布方法、及媒体交付***
Lee et al. A vEB-tree-based architecture for interactive video on demand services in peer-to-peer networks
Noh et al. Time-shifted streaming in a tree-based peer-to-peer system.
Budhkar et al. Two-tier peer selection strategy to minimize delay in p2p live streaming systems
JP2009177811A (ja) 分割後のp2pモードでの繰延回復を目的としたコンテンツのライブ送信のための方法、並びに制御装置及び関連する設備
Michel et al. Toward qoe-aware optimum peer cache sizes for p2p video-on-demand systems
Hammami et al. Comprehensive study of buffering mechanisms in hybrid live P2P streaming protocol HLPSP
Thiruselvan Design of Distributed Prefetching Protocol in Push-to-Peer Video-on-Demand System
JP2015156657A (ja) Iptvシステムのためのエッジコンテンツ配信デバイスおよびコンテンツ配信ネットワーク
Sarkar et al. A measurement study of network coding in peer-to-peer video-on-demand systems
Sarkar An Empirical Analysis of Network Coding in Peer-to-Peer Video-on-Demand Systems
Chen et al. Provide VoD service in peer-to-peer network using offset ranking and epidemic diffusion