ES2558864T3 - Método y aparato para medir disponibilidad, calidad y rendimiento de flujo - Google Patents

Método y aparato para medir disponibilidad, calidad y rendimiento de flujo Download PDF

Info

Publication number
ES2558864T3
ES2558864T3 ES04710206.6T ES04710206T ES2558864T3 ES 2558864 T3 ES2558864 T3 ES 2558864T3 ES 04710206 T ES04710206 T ES 04710206T ES 2558864 T3 ES2558864 T3 ES 2558864T3
Authority
ES
Spain
Prior art keywords
flow
representative
useful
core
data
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.)
Expired - Lifetime
Application number
ES04710206.6T
Other languages
English (en)
Inventor
Ramesh K. Sitaraman
Reid W. Barton
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.)
Akamai Technologies Inc
Original Assignee
Akamai Technologies Inc
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 Akamai Technologies Inc filed Critical Akamai Technologies Inc
Application granted granted Critical
Publication of ES2558864T3 publication Critical patent/ES2558864T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching 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/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/752Media network packet handling adapting media to network capabilities
    • 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
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/046Network management architectures or arrangements comprising network management agents or mobile agents therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5009Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5032Generating service level reports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • H04L43/062Generation of reports related to network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0847Transmission error
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0888Throughput
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • H04L43/106Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/12Network monitoring probes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Un aparato (400), que comprende: un núcleo (405); un representador (406); y caracterizado por un primer módulo software situado intermedio del núcleo y del representador, el primer módulo software operable para generar una primera métrica a medida que un flujo de paquetes de datos útiles se pasan entre el núcleo (405) y el representador (406), en donde la primera métrica es una estadística calculada a partir de los paquetes de datos útiles; y en donde cada paquete de datos útil tiene un conjunto de propiedades asociadas con el mismo, en donde el conjunto de propiedades comprende: que el paquete de datos no se ha adelgazado por un servidor, que el paquete de datos no se perdió de una manera irrecuperable durante el transporte y que el paquete de datos llegó al representador a tiempo para ser útil para su representación.

Description

5
10
15
20
25
30
35
40
45
50
55
DESCRIPCION
Metodo y aparato para medir disponibilidad, calidad y rendimiento de flujo Antecedentes de la invencion
Campo tecnico
La presente invencion se refiere de manera general a medicion del rendimiento de entrega de medios de difusion en forma continua.
Description de la tecnica relacionada
Los medios de difusion en forma continua son un tipo de contenido de Internet que tiene la importante caracterlstica de ser capaz de ser reproducido mientras aun esta en el proceso de ser descargado. Una maquina cliente puede reproducir el primer paquete del flujo y descomprimir el segundo, mientras que se recibe el tercero. De esta manera, un usuario final puede comenzar a disfrutar el multimedia sin esperar al final de la transmision. La difusion en forma continua es muy util para entregar medios debido a que los ficheros de medios tienden a ser grandes, particularmente a medida que aumenta la duration de la programacion. Ciertamente, para eventos en directo, el tamano de fichero, en realidad, es infinito. Para ver un fichero de medios que no se difunde en forma continua, los usuarios deben descargar primero el fichero a un disco duro local - lo cual puede tardar minutos o incluso horas - y luego abrir el fichero con software reproductor que sea compatible con el formato de fichero. Para ver medios de difusion en forma continua, el navegador del usuario abre el software reproductor, el cual almacena temporalmente el fichero durante unos pocos segundos y luego reproduce el fichero mientras que lo descarga simultaneamente. A diferencia de las descargas software, los ficheros de medios de difusion en forma continua no se almacenan localmente en el disco duro de un usuario. Una vez que se usan los bits que representan contenido, el reproductor tlpicamente los descarta.
Los medios de difusion en forma continua normalmente se basan en un software de servidor y cliente propietario. El servidor, el cliente, las herramientas de production y codification desarrolladas por un proveedor del software de difusion en forma continua se conocen colectivamente como formato. Los medios de difusion en forma continua codificados en un formato particular se deben servir por un servidor de medios de ese formato y reproducir por un cliente de ese formato. Los clientes de medios de difusion en forma continua a menudo se llaman reproductores y tlpicamente existen como complementos a navegadores Web. Los tres principales formatos de medios de difusion en forma continua en uso hoy en dla son: RealNetworks RealSystem G2, Microsoft Windows Media Technologies (“WMT”) y Apple QuickTime.
Un numero en constante crecimiento de proveedores de contenidos, empresas y redes de entrega de contenidos utilizan y entregan medios de difusion en forma continua. Como consecuencia, ha llegado a ser importante cuantificar, de una forma cientlfica y medible, lo bien que se entrego un flujo dado, as! como idear metricas relevantes que capturen la experiencia del usuario final del flujo. Los reproductores de medios clientes tienen la capacidad de generar estadlsticas basicas acerca de los flujos que entregan. Desafortunadamente, la correlation de algunas de estas estadlsticas con una experiencia de usuario final de alta calidad es subjetiva y de esta manera extremadamente diflcil de medir eficazmente. Por ejemplo, la tasa de tramas, una metrica usada comunmente notificada por reproductores de medios, puede no ser un indicador robusto de la calidad de flujo debido a que los reproductores pueden interpolar e insertar tramas de calidad variable en un flujo. Como otro ejemplo, algunos reproductores de medios notifican una metrica de ancho de banda que no indica con precision sin se reciben o no los octetos de una forma oportuna de manera que se puedan usar para representation.
Hay diversas companlas, tales como Keynote, StreamCheck y otras, que proporcionan soluciones de monitorizacion de difusion en forma continua parcial o completamente externalizadas. En un sistema ilustrativo, ordenadores de medicion de difusion en forma continua (algunas veces llamados “agentes”) conectan a los URL y recaban estadlsticas relevantes, tales como el tiempo de almacenamiento temporal inicial, la information de paquetes y la calidad de flujo total. Estos agentes de medicion se colocan tlpicamente estrategicamente alrededor de Internet para representar con precision la experiencia de un usuario final que conecta a un URL de sitio dado. Los proveedores de tales soluciones de monitorizacion de rendimiento externalizadas tlpicamente proporcionan datos de rendimiento en forma de informes en tiempo real e historicos y alarmas basadas en umbral.
A modo de antecedentes adicionales, tambien se conoce en la tecnica anterior que la medicion de rendimiento de difusion en forma continua es significativamente mas diflcil que las mediciones de descarga web por diversas razones. A diferencia del rendimiento web, donde basta medir tiempos de descarga de objetos, los flujos pueden mostrar degradation de formas significativamente complejas que necesitan ser cuantificadas y medidas. A diferencia del protocolo HTTP, un protocolo abierto, que mide rendimiento de flujo implica tener en cuenta protocolos de difusion en forma continua propietarios complejos, tales como RTSP (Real) y MMS (Windows Media).
Uno puede distinguir tres pasos en poner a disposition contenido de medios de difusion en forma continua al usuario final: los medios se capturan y codifican, los medios se entregan sobre la red al cliente, es decir, al reproductor de medios del usuario final y los medios se representan por el reproductor de medios para ser vistos por el usuario final.
5
10
15
20
25
30
35
40
45
50
55
60
El proceso de entrega de medios de difusion en forma continua sobre la red puede degradar la calidad percibida por el usuario final. Una meta primaria de una red de entrega de contenidos (o “CDN”) es asegurar que los medios se entregan a un usuario final solicitante con tan pocas distorsiones como sea posible desde su forma codificada original, maximizando por ello la experiencia del usuario final del flujo. Las causas ralz de degradacion de la calidad de flujo son problemas que pueden ocurrir en la red subyacente que transporta los medios desde el servidor al cliente. Por ejemplo, la conectividad de red puede disminuir, lo cual limita la capacidad del cliente para hablar al servidor. El ancho de banda efectivo disponible entre el servidor y el cliente se puede reducir extremadamente. La red puede perder paquetes enviados desde el servidor al cliente. Mas sutilmente, la red puede hacer que los paquetes sean reordenados en la ruta al cliente. O, los paquetes se pueden entregar por la red al cliente tarde, en cuyo caso los paquetes no seran utiles en la reproduccion de flujo.
Es instructivo examinar como el cliente y el servidor reaccionan a estos problemas de red de una manera que degrada la calidad de flujo. Como se senalo anteriormente, tlpicamente el cliente y el servidor comunican usando un protocolo propietario (tal como RTSP de Real o MMS de Windows Media) para controlar la manera en que los datos se difunden en forma continua desde el servidor al cliente. El protocolo cliente-servidor esta disenado tlpicamente para superar cantidades moderadas de degradacion de red. El reproductor tlpicamente almacena temporalmente varios segundos de datos delante de lo que esta siendo representado actualmente. Este almacenamiento temporal ayuda al reproductor a suavizar cualquier variacion en la tasa a la que se estan recibiendo los paquetes, incluyendo entrega de paquetes fuera de orden. Ademas, el almacenamiento temporal proporciona una oportunidad al reproductor para tolerar una cierta cantidad de perdida de paquetes, debido a que los paquetes perdidos se pueden volver a solicitar desde el servidor y recibir a tiempo para su reproduccion. Consecuentemente, se protege eficazmente una degradacion moderada en la red desde el usuario.
A medida que la red se degrada mas, no obstante, uno podrla ver periodos prolongados de reduccion en el ancho de banda disponible o una cantidad significativa de paquetes perdidos o un numero significativo de paquetes que llegan tarde. El servidor tlpicamente reacciona a tal situacion enviando menos que el ancho de banda codificado completo al cliente, provocando una reproduccion adelgazada. El servidor logra este adelgazamiento enviando solamente los octetos “mas importantes” y tirando el resto. Por ejemplo, el servidor puede enviar solamente las tramas de video claves y audio y no enviar el resto del contenido. En el caso extremo, el adelgazamiento provoca el denominado efecto de “presentacion de diapositivas”, donde se muestran tramas aisladas sin interpolacion. Si el flujo se codifica a multiples tasas de bit, el adelgazamiento se efectua mas sin discontinuidad, por ejemplo, mediante el servidor que conmuta a una replica del flujo codificado a una tasa de bit inferior. Tlpicamente, el ancho de banda difundido en forma continua desde el servidor al cliente se controla por un bucle de realimentacion, donde el cliente estima continuamente el ancho de banda disponible y lo notifica al servidor y el servidor intenta ajustar el flujo al ancho de banda disponible. Una degradacion incluso mas drastica en la red, por ejemplo, una reduccion rapida en el ancho de banda disponible, puede empobrecer el almacenador temporal de datos del reproductor. Cuando el reproductor no puede continuar la reproduccion, se congela para rellenar su almacenador temporal antes de reanudar de nuevo, provocando una reproduccion interrumpida. El reproductor se disena tlpicamente para volver a almacenar temporalmente solamente bajo condiciones de red extremas.
Hay una necesidad en la tecnica de proporcionar metodos mejorados para medir calidad y rendimiento de flujo. La presente invencion aborda esta necesidad.
El documento GB2355901-A describe un sistema para medir retardos a traves de equipamiento en una red de paquetes. En diversas etapas durante, por ejemplo, la generacion de una senal de prueba y transmision de paquetes de flujo de audio, los paquetes maestros se generan por el generador de paquetes en respuesta a desencadenar senales desde el generador de senal. La precision de la medicion se puede mejorar situando la posicion de la senal de prueba codificada en los paquetes de flujo de audio.
Pagani E et al, “Distributed bandwidth broker for G05 Multicast Traffic”; IEEE Comp. Soc., EE.UU., Vol CONF. 22, 2 de julio de 2002, p 289-296 XP010595543, ISBN: 978-0-7695-1585-4; trata un protocolo basado en medicion distribuida propuesta que realiza funcionalidades de control de admision para trafico de multidifusion en redes de diferentes servidores.
Breve compendio de la invencion
Un objeto de la presente invencion es proporcionar un agente de medicion de difusion en forma continua que se disena para experimentar, medir y notificar en un flujo de medios como un usuario final real experimental el flujo. Preferiblemente, esto se logra teniendo el agente que reside transparentemente dentro de un reproductor de medios en si mismo de manera que el agente pueda monitorizar los flujos de paquetes de flujo dentro del reproductor a medida que estan siendo reproducidos los flujos medidos. En una realization ilustrativa, el agente comprende un modulo de monitorizacion de rendimiento (pMm), que es un software que reside preferiblemente en una interfaz entre un modulo central existente y un modulo de representation (un “representador”) de un reproductor de medios. El agente PMM intercepta preferiblemente cada paquete util como va desde el nucleo al modulo de representacion y, como resultado, el agente es capaz de calcular metricas de calidad acerca de la representacion de una forma altamente precisa. El agente funciona “transparentemente” al reproductor de medios presentando el nucleo con una interfaz de programacion de aplicaciones (API) que emula la API que el representador presenta normalmente al
5
10
15
20
25
30
35
40
45
50
55
nucleo. De esta manera, cuando el nucleo cree que esta llamando al representador, el nucleo esta llamando realmente al agente PMM, que entonces puede recibir todos los paquetes desde el nucleo y procesarlos. Despues de calcular las metricas de rendimiento relevantes usando los paquetes recibidos, el agente PMM llama al representador y desde la perspectiva del representador el agente juega el mismo papel que el nucleo.
Segun un rasgo de la invention, el agente puede calcular una o mas metricas de calidad y rendimiento interceptando paquetes utiles que fluyen dentro del reproductor de medios. Generalmente, una estadlstica dada se genera a parti r del paquete util interceptado. Como se usa en la presente memoria, una estadlstica dada es alguna funcion arbitraria que se puede calcular a partir de la secuencia de paquetes utiles que se interceptan. Preferiblemente, un paquete util es uno que tiene un conjunto dado de propiedades, por ejemplo, no se ha adelgazado por un servidor de difusion en forma continua durante la entrega, no se perdio de una manera irrecuperable durante la entrega y llego al reproductor a tiempo para ser util para su reproduction. En una realization particular, el agente usa estos paquetes para calcular un ancho de banda de reproduccion real, una medicion precisa de la calidad de flujo que se percibe por un usuario final. Otras metricas relacionadas con paquetes y metricas relacionadas con ancho de banda se obtienen tambien monitorizando el flujo de paquetes a traves del modulo de monitorizacion de rendimiento embebido. Adicionalmente, el agente puede usar funciones de reproduccion de medios nativas (por ejemplo, una funcion de devolution de llamada) para obtener otra information util tal como tiempo de puesta en marcha de flujo, interrupciones, componentes de tiempo de puesta en marcha y similares.
La monitorizacion del flujo de paquetes real dentro del reproductor de medios en si mismo segun la presente invencion proporciona una nueva forma de evaluar la disponibilidad, calidad y rendimiento de flujo. Debido a todo o sustancialmente todo, el flujo de paquetes utiles a traves del PMM, la presente invencion proporciona una vista mejorada en la efectividad del proceso de entrega de flujo comparada con tecnicas de la tecnica anterior. El flujo de paquetes a traves del PMM permite la generation de metricas de rendimiento importantes, tales como ancho de banda de reproduccion real y estas metricas se pueden complementar con metricas generadas a traves de otros medios, por ejemplo, usando funciones de devolucion de llamada del reproductor.
Segun otro aspecto de la presente invencion, la tecnologla de agente descrita anteriormente se despliega de una manera ampliamente distribuida para proporcionar mediciones de calidad y rendimiento de flujo desde una pluralidad de ubicaciones. Comparado con las tecnicas de la tecnica anterior, los datos recabados desde estos agentes pueden notificarse con mas precision sobre con cuanto exito esta siendo entregado un flujo desde un servidor dado a un conjunto de reproductores de medios.
Segun un aspecto adicional de la presente invencion, un servicio de medicion de calidad y rendimiento de flujo gestionado se proporciona por un proveedor de servicios en nombre de los proveedores de contenidos participates, por ejemplo, entidades que usan una red de entrega de contenidos (cDn) para facilitar entrega de medios de difusion en forma continua. El servicio utiliza un conjunto de agentes de rendimiento tal como se describio anteriormente que se despliegan en un conjunto diverso de redes y ubicaciones geograficas para medir el rendimiento sobre una amplia variedad de condiciones. El proveedor de servicios puede desplegar los agentes de medicion en ubicaciones que de otro modo estan libres de servidores de difusion en forma continua o coubicadas con tales servidores.
Lo precedente ha perfilado algunos de los rasgos mas pertinentes de la presente invencion. Estos rasgos se deberlan interpretar que son meramente ilustrativos. Se pueden obtener muchos otros resultados beneficiosos aplicando la invencion descrita de una manera diferente o modificando la invencion como se describira. Por consiguiente, otros rasgos y una comprension mas completa de la invencion se pueden tener refiriendose a la siguiente Description Detallada de la Realizacion Preferida.
Breve descripcion de los dibujos
La Figura 1 es un diagrama de bloques altamente simplificado de un mecanismo de entrega de medios de difusion en forma continua;
La Figura 2 es un diagrama simplificado de un reproductor de medios de difusion en forma continua de la tecnica anterior;
La Figura 3 es un diagrama de bloques de un sistema de medicion de flujo que incluye un conjunto de agentes de monitorizacion que facilitan un servicio de medicion de calidad y rendimiento del flujo gestionado; y
La Figura 4 es un diagrama de bloques del mecanismo agente inventivo.
Descripcion detallada de la realizacion preferida
La Figura 1 ilustra un mecanismo de entrega de difusion en forma continua convencional en donde una maquina cliente 100 conecta a un servidor de medios de difusion en forma continua 102 a traves de una red 104, tal como Internet, una intranet, una red de entrega de contenidos (CDN) o similares. La maquina cliente es tlpicamente un ordenador que tiene hardware basico 106, software de sistema operativo 108, un navegador Web 110 y un reproductor de medios de difusion en forma continua 112. En una operation tlpica, un usuario final lanza su
5
10
15
20
25
30
35
40
45
50
55
60
navegador a un Localizador de Recursos Uniforme (URL) que identifica el flujo de medios deseado. Una vez que el cliente se conecta al servidor de medios 102, el servidor entrega el flujo sobre la red al navegador del cliente, en el que se representa por el reproductor de medios. Como se ilustra en la Figura 2, el reproductor de medios de difusion en forma continua 200 tlpicamente incluye dos (2) componentes primarios: un nucleo 202 y un representador 204. Se deberla senalar que la Figura 2 se supone que proporciona una vista simplificada para ilustrar la tecnologla de reproductor conocida. En realidad, un reproductor de medios real, tal como Real y WMS, contendrla varios submodulos con una estructura mas compleja que implementa las funcionalidades de nucleo y representador descritas anteriormente. Sin embargo, es sencillo correlacionar las ideas perfiladas aqul a reproductores de medios especlficos para construir agentes especlficos para cada uno de los formatos bien conocidos que incluyen Real, WMS y Quicktime. Por supuesto, la tecnologla de agente inventivo no esta limitada para uso con estos formatos conocidos, ya que los metodos y tecnicas descritos mas adelante se pueden usar con cualquier dispositivo de representacion de paquetes de flujo.
El nucleo 202 es responsable de transportar datos recibidos desde el servidor de medios. Tlpicamente, el nucleo 202 establece un canal de control para intercambiar informacion de control con el servidor de medios. Tal informacion puede incluir peticiones del reproductor para describir, reproducir, hacer una pausa, parar el flujo, realimentar desde el reproductor en el ancho de banda percibido, perdida de paquetes y otras metricas, informacion desde el servidor en los medios que esta siendo solicitada y as! sucesivamente. Como se senalo anteriormente, el protocolo de control entre el nucleo y el servidor de medios es tlpicamente propietario, por ejemplo, RTSP para Real y MMS para Windows Media. Ademas del control de canal, el nucleo 202 tlpicamente establece un canal de datos sobre el cual el flujo de medios real fluye desde el servidor al cliente. El flujo de medios es una serie de paquetes que contienen informacion de audio, video y texto. Los paquetes se deben recibir de una forma oportuna para que el flujo sea util. En particular, cada paquete tlpicamente tiene un sello de tiempo que indica cuando se debe representar y el nucleo 202 transfiere sobre (al representador 204 para ser representados) aquellos paquetes que llegan de una forma oportuna. El nucleo 202 puede recibir paquetes desde el servidor varios segundos delante del momento en que se deben representar y los paquetes que llegan delante del momento se almacenan en un almacenador temporal (no mostrado). Esto proporciona una oportunidad al nucleo 202 para volver a solicitar paquetes perdidos desde el servidor y para recuperarlos en el momento para que tales paquetes sean representados adecuadamente. El representador 204 recibe paquetes desde el nucleo 202 y representa los datos contenidos en el paquete. El representador contiene varias unidades funcionales, una para cada tipo de medios o puede haber un representador separado para cada tipo. Se representa informacion de audio a traves del dispositivo de sonido en el ordenador del cliente, mientras que la informacion de video y texto se representa en la pantalla de visualizacion del ordenador.
El agente es una pieza de software capaz de reproducir flujos, medir la disponibilidad y calidad de los flujos y notificar esta informacion. En una realizacion representativa, el agente es independiente del nucleo o el representador, aunque este no es un requisito de la invention. En un caso adecuado, la funcionalidad del agente puede ser nativa para el nucleo o para el representador. Un proveedor de reproductor de medios dado puede proporcionar de esta manera el reproductor de medios con la funcionalidad de agente integrada.
Un reproductor de medios dado incluye un agente y un conjunto de reproductores de medios con agentes embebidos puede comprender un sistema de monitorizacion de flujo como se ilustra en la Figura 3. En este ejemplo, el sistema de monitorizacion de flujo 300 incluye, sin limitation, una circuiterla de entrada 302 donde los usuarios pueden establecer pruebas de flujo y empuja estas pruebas fuera a un conjunto de agentes 304a-n desplegados en diversas ubicaciones de red y geograficas; y una circuiterla de salida 306 que almacena los datos de rendimiento notificados por los agentes y proporciona herramientas de analisis 308 y una interfaz de usuario (UI) conveniente 310 para ver los resultados de las pruebas. Se accede al uno o mas ordenadores que comprenden la circuiterla de entrada 302 y la circuiterla de salida 306 preferiblemente a traves de un canal seguro, aunque esto no es una limitacion. Una forma conveniente de implementar estos subsistemas es a traves de una aplicacion de intranet o extranet, por ejemplo, usando un navegador Web sobre una conexion segura (SSL). En una realizacion particular, un proveedor de servicios usa la circuiterla de entrada 302 para el suministro de las pruebas y el proveedor de servicios y sus clientes usan la circuiterla de salida para ver o evaluar los resultados de las pruebas. Preferiblemente, los agentes en si mismos programan las pruebas, realizan las pruebas y notifican de vuelta los resultados.
Como se ve en la Figura 4, un agente ilustrativo 400 tiene dos componentes primarios: una capa de agente 402 y un nucleo de agente 404, cada uno de los cuales se describe ahora a un nivel funcional. La capa de agente 402 como se ilustra es logicamente distinta del nucleo de agente 404. El nucleo de agente incluye un modulo de monitorizacion de rendimiento (PMM) 408 que reside a traves de la interfaz entre un nucleo 405 y un representador 406 y monitoriza el flujo de paquetes. En esta realizacion, el nucleo de agente 404 incluye el nucleo y el representador (que, tlpicamente, son elementos que se proporcionan por el proveedor de reproductor de medios de terceras partes), aunque esto no es un requisito. Alternativamente, el nucleo de agente puede comprender solo el PMM y el nucleo. Generalmente, la capa de agente 402 proporciona funciones de control para el nucleo de agente (y, en particular, el PMM) e inicia una o mas pruebas y la capa de agente 402 recibe los resultados de las pruebas. En una realizacion ilustrativa, la capa de agente incluye codigo que proporciona varias funciones, tales como determinar una configuration de pruebas que necesitan ser llevadas a cabo, programacion de las pruebas y notification de vuelta sobre la calidad de flujo, por ejemplo, a la circuiterla de salida del sistema de monitorizacion de flujo. El paso de
5
10
15
20
25
30
35
40
45
50
55
60
lectura de la configuracion de prueba se puede lograr leyendo un fichero de configuracion presente en la maquina local o poniendo en cola un mecanismo de comunicacion en tiempo real. En una realizacion representativa, el fichero de configuracion se empuja desde el sistema de circuiterla de entrada a la capa de agente o se extrae bajo demanda por la capa de agente.
Tlpicamente, una configuracion de pruebas consta de varios conjuntos de pruebas, donde cada conjunto de pruebas se puede realizar independientemente y en paralelo. En una realizacion representativa, cada conjunto de pruebas tiene un tiempo de inicio cuando el agente necesita iniciar las pruebas del conjunto de pruebas, un tiempo final cuando el agente necesita parar las pruebas del conjunto de pruebas, una prioridad que proporciona informacion de programacion sobre lo importante que es el conjunto de pruebas y una frecuencia que determina con que frecuencia se repite la prueba del conjunto de pruebas. Preferiblemente, cada conjunto de pruebas es una serie de pruebas que se ejecutan en una secuencia una despues de otra. Preferiblemente, cada prueba se especifica por el URL del flujo que necesita ser probado, el tiempo de puesta en marcha maximo, que es la cantidad maxima de tiempo que el agente esperara el flujo para iniciar la reproduccion antes de declarar un fallo, el tiempo de flujo maximo, que es la cantidad de tiempo en el flujo en que el agente reproduce el flujo y el tiempo de reproduccion maximo, que es la cantidad de tiempo de reloj real maxima que el agente intentara reproducir el flujo. Senalar la distincion sutil entre tiempo de flujo que se define interno al flujo que se esta midiendo y tiempo de reproduccion, que es el tiempo de reloj real; por ejemplo, el agente podrla reproducir el flujo hasta que alcanza el punto de 3 minutos en el fragmento, es decir, el tiempo de flujo transcurrido es 3 minutos, pero podrla tardar realmente 4 minutos de tiempo de reloj alcanzar ese punto debido a eventos de realmacenamiento temporal cuando la reproduccion se congela, es decir, el tiempo de reproduccion transcurrido es 4 minutos. Preferiblemente, el agente detiene la reproduccion del fragmento cuando se alcanza o bien el tiempo de flujo maximo o bien el tiempo de reproduccion maximo, cualquiera que se alcance a la mayor brevedad.
Como se senalo anteriormente, la capa de agente 402 tambien realiza la programacion de las pruebas. La capa programa las pruebas en los conjuntos de pruebas por las especificaciones y maneja las pruebas en la secuencia adecuada al nucleo de agente 404 para su prueba. El nucleo de agente 404 es responsable de dirigir las pruebas y notificar de vuelta las metricas de calidad de flujo medidas de vuelta a la capa de agente. En particular, la capa registra las metricas de calidad de flujo en un fichero de registro 410 que, por ejemplo, puede contener una llnea de registro por prueba. En una realizacion, los registros se transportan al sistema de circuiterla de salida, por ejemplo, a traves de correo de registro. Alternativamente, los datos de calidad de flujo tambien se pueden notificar de vuelta mediante un mecanismo que es mas en tiempo real que correo de registro, esto es, un mecanismo de consulta distribuido.
El nucleo de agente 404 coge en el URL lo que necesita ser probado, reproduce el flujo (por ejemplo, a traves de al menos el nucleo), mide una o mas metricas de rendimiento y notifica estas metricas de vuelta a la capa de agente 402. Como se ilustra en la Figura 4, el nucleo incorpora dentro de el (o esta asociado de otro modo con) un reproductor de medios (por ejemplo, un reproductor de Windows Media, un reproductor de Real, un reproductor QuickTime) que se usa para reproducir los flujos. En particular, el reproductor de medios es tlpicamente una caja negra, que es una pieza propietaria de software. Por supuesto, es conocido que “mirar dentro” de una caja negra para extraer informacion de rendimiento es una tarea desafiante. Segun la presente invencion, no obstante, el nucleo de agente 404 supera estas deficiencias implementando una interfaz - entre el nucleo y el representador - que se usa para monitorizar el rendimiento de flujo. Como se senalo anteriormente y como se muestra en la Figura 4, el nucleo de agente contiene un modulo de monitorizacion de rendimiento (PMM) 408 que reside dentro (o a traves) de esta interfaz. Como se vera, la calidad del flujo que se representa depende de los paquetes utiles traspasados por el nucleo al representador. Como se usa en la presente memoria, los paquetes utiles se consideran que son aquellos paquetes que no se adelgazaron por el servidor, que no se perdieron de una forma irrecuperable ya que se transmitieron sobre la red desde el servidor al cliente y que llegaron a tiempo para ser utiles para la representacion. Preferiblemente, el modulo de monitorizacion de rendimiento 408 intercepta todos o sustancialmente todos los paquetes utiles a medida que los paquetes van desde el nucleo al representador y es capaz de calcular metricas de calidad acerca de la reproduccion.
Con independencia de la arquitectura del reproductor de medios, el modulo de monitorizacion de rendimiento (PMM) se deberla disenar para “comportarse” como un representador para el nucleo para interceptar eficazmente los paquetes utiles. En particular, el PMM se disena para proporcionar la misma o sustancialmente la misma interfaz de programacion de aplicaciones (API) al nucleo que al representador. De esta manera, cuando el nucleo piensa que esta llamando al representador, esta llamando realmente a un representador-contenedor 410 que es parte del PMM. El representador-contenedor 410 puede recibir entonces todos los paquetes desde el nucleo. Despues de calcular las metricas de rendimiento relevantes usando los paquetes que recibe, el PMM entonces puede completar la transferencia de paquetes llamando al representador real. Desde la perspectiva del representador, el PMM juega el mismo papel que el nucleo.
Segun una realizacion ilustrativa, el PMM calcula una o mas metricas de rendimiento interceptando los paquetes utiles que fluyen dentro del reproductor de medios. Una metrica ilustrativa es el ancho de banda de reproduccion real, que mide los bits/seg que llegan sin perdida y a tiempo para su representacion. Los reproductores de medios convencionales no proporcionan esta metrica. Como se muestra en la Figura 4, el modulo preferiblemente tambien
5
10
15
20
25
30
35
40
45
50
55
usa una o mas funciones de devolucion de llamada proporcionadas por el reproductor de medios para calcular metricas adicionales.
Una description de como el PMM calcula las diversas metricas de rendimiento sigue. En particular, la siguiente es una descripcion generica de la estrategia de calculo de metrica de rendimiento junto con detalles especlficos para implementar la invention con reproductores de medios representativos proporcionados por Real o WMS. Para calcular las metricas, el PMM puede basarse en un kit de desarrollo software (SDK) de reproductor de medios para el formato de difusion en forma continua particular. De esta manera, por ejemplo, una primera realization del agente (para uso con un reproductor de medios Real) se basa en el SDK de RealSystem. Una segunda realizacion del agente (para uso con un reproductor de medios WMS) usa el SDK de Windows Media Format. En la siguiente discusion, se supone familiaridad con las operaciones del reproductor Real y Windows Media, as! como los SDK asociados.
Un marco para medir calidad de flujo
Lo siguiente describe una metodologla de medicion de calidad de flujo que se puede implementar usando la tecnologla de agente. Como se senalo anteriormente, el agente proporciona una vista interior detallada del flujo debido a que preferiblemente se asienta entre el nucleo y el representador del reproductor de medios. Con esta vista, se pueden hacer varias preguntas de primer nivel acerca de cada reproduction que forma la base para las metricas de calidad de flujo: el usuario fue capaz de conectar con el servidor y reproducir el flujo, cuanto tuvo que esperar el usuario antes de que comenzase la reproduccion de flujo y que fraction de los medios fue entregada eficazmente desde el servidor al reproductor para ser utilizable y que fraccion fue adelgazada en el servidor, perdida en transito o llego tarde para ser no utilizable, hubo cualquier interruption, es decir, realmacenamientos temporales, durante la reproduccion. Estas metricas de primer nivel, tomadas juntas (lo cual no es un requisito), proporcionan una imagen clara de como se reprodujo el flujo. Ademas, el uso del agente facilita la medicion de varias metricas de segundo nivel o “auxiliares” que proporcionan information adicional acerca de la calidad de flujo. Estas se definiran mas adelante.
Las metricas de primer nivel:
Las metricas de primer nivel pueden incluir las siguientes:
• Tasa de fallos: Cuando el usuario intenta reproducir un flujo, el flujo puede no ponerse en marcha por cualquier numero de razones. El reproductor puede ser incapaz de alcanzar el servidor debido a que falla una busqueda de nombre de DNS, el servidor esta caldo, el servidor esta demasiado sobrecargado para responder o la conectividad de red entre el cliente y el servidor esta calda. Incluso si el cliente es capaz de establecer conectividad con el servidor, el flujo puede no ponerse en marcha debido a que el servidor no puede acceder a los medios o el servidor es incapaz de obtener bastantes datos para el cliente de una forma oportuna para empezar la reproduccion. Capturas de tasa de fallos, preferiblemente como un porcentaje, la fraccion de veces que el usuario es incapaz de reproducir con exito el flujo.
• Tiempo de puesta en marcha: Suponiendo que la reproduccion de flujo no falla, el agente mide el tiempo de puesta en marcha, que es la cantidad de tiempo que el usuario tiene que esperar para que el flujo inicie la reproduccion.
• Adelgazamiento y Perdida: Despues de que el flujo comienza a reproducirse, la degradation de rendimiento mas comun es que el cliente es incapaz de recibir los medios de una forma oportuna desde el servidor. Tlpicamente, hay tres modos en los cuales se puede perder informacion: (a) el servidor puede “adelgazar” la informacion fuera y nunca enviarla al cliente; (b) el servidor puede enviar datos, pero los datos se pierden en ruta y no se pueden recuperar; (c) el servidor puede enviar los datos, pero los datos podrlan llegar demasiado tarde para ser usados en el reproductor. Una metrica que mide estas formas de degradacion se conoce en la presente memoria como ancho de banda de reproduccion real; que es una tasa a la que se reciben por el cliente los datos utiles, es decir, datos que llegan de una forma oportuna para ser usados en el reproductor. Ancho de banda de reproduccion ideal es el ancho de banda de reproduccion medido en el cliente cuando los medios se reproducen bajo condiciones ideales sin degradacion. El ancho de banda de reproduccion real se compara tlpicamente con el ancho de banda de reproduccion ideal para comprender que parte de los medios se adelgazo, perdio, tardo o de otro modo fue inutilizable por el cliente. Un valor de ancho de banda de reproduccion real que es significativamente menor que el valor ideal indica distorsiones visibles en la reproduccion, incluyendo presentaciones de diapositivas donde solamente se presentan en la pantalla un subconjunto de las tramas.
• Interrupciones: Una forma diferente de degradacion ocurre cuando el reproductor es incapaz de continuar con la reproduccion, por ejemplo, debido a que su almacenador temporal esta vaclo. En tal caso, el reproductor hace una pausa en la reproduccion y espera que lleguen mas datos. Dos metricas importantes para medir interrupciones son realmacenamientos temporales por minuto, que es el numero medio de incidentes de realmacenamiento temporal en un minuto de reproduccion y tiempo de realmacenamiento
5
10
15
20
25
30
35
40
45
50
temporal por minuto, que es el tiempo medio gastado realmacenando temporalmente en un minuto de reproduction.
Las metricas auxiliares
Ademas de las metricas de primer nivel, hay otras metricas de interes que proporcionan information mas detallada sobre la calidad del flujo. Ellas incluyen una o mas de las siguientes:
• Otras Metricas de Fallos: Ademas de la tasa de fallos total, pueden ser de interes tasas de fallos mas especlficas que detallan donde y como ocurrio el fallo. Las metricas especlficas de interes son:
o Tasa de Fallos de DNS: fallo en la busqueda de DNS para localizar un servidor.
o Tasa de Fallos de Conexion: fallo en la etapa de conexion, por ejemplo, los medios solicitados no
estaban presentes.
o Tasa de Fallos de Almacenador Temporal: fallo en la puesta en marcha debido a que el almacenamiento temporal inicial no se podrla completar, por ejemplo, los datos que no fluyen a una tasa suficiente desde el servidor al cliente.
o Tasa de Desconexion de Flujo: fallo en el medio de la reproduccion, por ejemplo, conectividad perdida con el servidor antes de que pudiera completarse la reproduccion.
• Componentes de Tiempo de Puesta en Marcha: Las tres metricas de mas adelante se anaden a la metrica de Tiempo de Puesta en Marcha.
o Tiempo de Busqueda de DNS: El tiempo que tarda el cliente en buscar el nombre de dominio en el URL y obtener una direction IP del servidor de medios que sirve el flujo.
o Tiempo de Conexion: El tiempo que tarda el cliente en completar el inicio de dialogo del protocolo con el servidor y obtener una description de los medios.
o Tiempo de Almacenamiento Temporal Inicial: El tiempo que tarda el cliente en recibir suficientes datos desde el servidor para iniciar la reproduccion.
• Metricas de Paquetes: Mientras que las metricas de ancho de banda, tales como ancho de banda de reproduccion, se centran en la tasa a la que se entregan los octetos al cliente, las metricas de paquetes se centran en la tasa a la que se entregan los paquetes al cliente. Las metricas de ancho de banda son generalmente mas robustas, debido a que reflejan el contenido de informacion entregado al cliente con mas precision. Ademas, los paquetes pueden ser de tamano variable conteniendo cantidades variables de informacion, lo que hace el recuento de paquetes menos robusto. Los recuentos de paquetes tambien pueden variar de reproduccion en reproduccion para los mismos medios por razones distintas de la calidad, dependiendo de como se hace la paquetizacion en el servidor. Sin embargo, las metricas de paquetes tlpicamente son de algun interes como una medida de calidad.
o Tasa de Paquetes Utiles: Esta es la tasa a la que se entregan paquetes utiles al cliente. Se deberla senalar que un paquete tlpicamente es util solamente si el paquete llego al cliente de una forma oportuna, sin ser adelgazado por el servidor o perdido de una forma irrecuperable en el transito al cliente o llego demasiado tarde para ser usado por el reproductor.
o Tasa de Paquetes Normales: De los paquetes que se reciben por el nucleo del cliente, algunos paquetes llegan sin que el cliente tenga que volver a solicitarlos desde el servidor. Estos paquetes constituyen la tasa de paquetes normales.
o Tasa de Paquetes Recuperados: De los paquetes que se entregan al cliente, algunos de los paquetes se pierden o llegan fuera de orden y se recuperan por el cliente. Estos paquetes constituyen la tasa de paquetes recuperados.
o Tasa de Paquetes Irrecuperables: Estos paquetes se enviaron por el servidor pero se perdieron y nunca podrlan ser recuperados por el cliente.
o Un problema fundamental con las tres metricas de paquetes precedentes es que no capturan lo que nunca fue enviado por el servidor o aquellos paquetes que llegan demasiado tarde para ser utiles. Tambien, estas metricas se miden a nivel de la aplicacion de cliente. Puede haber calidad de flujo mala sin embargo no haber paquetes irrecuperables (es decir, perdidos) que se perciben por el cliente. Este es tlpicamente el caso cuando se difunden en forma continua datos sobre TCP, debido a que TCP proporciona una abstraction (de no perdida) al cliente de difusion en forma continua que se asienta en la parte superior de el. Las metricas son mas significativos cuando se difunde en forma continua sobre UDP, donde el cliente realmente ve la perdida que ocurre en la
5
10
15
20
25
30
35
40
45
50
55
red. Sin embargo, la nocion de ancho de banda de reproduccion que se describio anteriormente es una medida mucho mas robusta y significativa de adelgazamiento y perdida de informacion.
• Otras Metricas de Ancho de Banda: Ademas de los anchos de banda de reproduccion real e ideal, tambien pueden ser de interes otros tres anchos de banda, que se describen mas adelante.
o Ancho de Banda Codificado Maximo y Mfnimo: Para medios de tasa de bit unica, hay solamente una codificacion y los anchos de banda codificados maximo y mlnimo ambos son iguales a la tasa de bit codificada de los medios. En el caso de medios de tasa de bit multiple, hay multiples codificaciones intercaladas, cada codificacion a una tasa de bit diferente. En este caso, cuando la red se degrada, el servidor puede bajar desde una codificacion de tasa de bit mas alta a una codificacion de tasa de bit mas baja, adelgazando eficazmente los medios. Esta bajada se captura registrando tanto el ancho de banda maximo como mlnimo de las codificaciones usadas en la reproduccion.
o Ancho de Banda de Red: Este es el ancho de banda de los datos recibidos por el reproductor desde el servidor. Senalar que mientras que el ancho de banda de red proporciona alguna idea del rendimiento de flujo, no es una medida precisa. El ancho de banda de red cuenta los paquetes duplicados y retransmitidos multiplicados, aunque no contribuyen a un rendimiento de difusion en forma continua mayor y, de hecho, son signos de degradacion de la red. Una situacion tlpica es cuando los paquetes llegan fuera de orden, el cliente pide una retransmision y recibe dos copias del mismo paquete, aumentando por ello el ancho de banda de red sin aumento en la calidad de flujo. Ademas, el ancho de banda de red no distingue entre octetos que son utiles y octetos que no lo son. Una situacion tlpica es el servidor que envla octetos al cliente demasiado tarde para ser utiles en la reproduccion; estos octetos se incluyen en el ancho de banda de red, pero no contribuyen a un aumento de la calidad de flujo. Finalmente, el servidor irrumpe en una parte inicial de los datos al cliente antes de enviar un flujo estable a la tasa de bit adecuada para el flujo. La rafaga inicial aumenta el ancho de banda de red inicialmente por encima de la tasa codificada, lo que puede ocultar cualquier deterioro en el ancho de banda y caer en la calidad de flujo mas tarde en la prueba. Estos problemas se evitan midiendo el ancho de banda de reproduccion real, que indica que ancho de banda se uso en la representacion. Aun, el ancho de banda de red proporciona informacion general y vale la pena conservarlo como una metrica auxiliar.
Como medir las Metricas de primer nivel
• Tasa de Fallos: El PMM usa preferiblemente funciones de devolucion de llamada para registrar la etapa en la que ocurrio el fallo, es decir, durante una busqueda de DNS, durante la fase de conexion, durante la fase de almacenamiento temporal inicial o durante la reproduccion. Preferiblemente, se produce un codigo de error que corresponde a los diferentes modos de fallo. Ademas, se registra cualquier codigo de error producido por el reproductor de medios en si mismo. Las combinaciones de codigo de error se analizan entonces para producir la tasa de fallo.
o Detalles para Real: Cuando ocurre un error, se notifican dos codigos de error, “error” y “real_error”. El campo “error” especifica o bien el tipo de error particular, en el caso de un error “slncrono” en el codigo de agente, tal como un fallo de busqueda de DNS o tiempo llmite o bien que un error “aslncrono” ocurrio en el codigo del SDK de RealSystem. Para errores slncronos, se ignora el campo “real_error”. Los fallos notificados por el SDK de RealSystem se capturan implementando el metodo ErrorOcurred() de la interfaz IRMAErrorSink; el codigo de error pasado a este metodo se almacena en el campo “real_error”.
El campo “error” describe la etapa en la que ocurrio el fallo. Una vez que se ha abierto la conexion Real, se determina la etapa registrando una interfaz IRMAClientAdviceSink e implementando las devoluciones de llamada OnBuffering(), OnPosLength() y OnStop(). Especlficamente, la fase de contacto comienza tan pronto como se abre la conexion; la fase de almacenamiento temporal comienza cuando se invoca la devolucion de llamada OnBuffering(); y la fase de reproduccion comienza cuando se invoca la devolucion de llamada OnPosLength() con un argumento ulPosition positivo.
o Detalles para Windows Media: Cuando ocurre un error, se notifican dos codigos de error por el agente, “error” y “wms_error”. El campo “error” especifica o bien el tipo de error particular, en el caso de un error slncrono en el codigo de agente tal como un fallo de busqueda de DNS o tiempo llmite o bien que un error “aslncrono” ocurrio en el codigo del SDK de Windows Media. Para errores en el codigo de agente, se ignora el campo “wms_error”. Los fallos notificados por el SDK de Windows Media se capturan manejando el valor de estado WMT_ERROR en el metodo de OnStatus() de la interfaz IWMStatusCallback; el codigo de error pasado a este metodo se almacena en el campo “wms_error”.
5
10
15
20
25
30
35
40
45
50
55
El campo “error” tambien describe la etapa en la que ocurrio el fallo. Una vez que se ha abierto la conexion WMS, se determina la etapa registrando una interfaz IWMStatusCallback e implementando la devolucion de llamada OnStatus(). Especlficamente, la fase de contacto comienza en un evento WMT_CONNECTING; la fase de almacenamiento temporal comienza en un evento WMT_BUFFERING_START; y la fase de reproduccion comienza en un evento WMT_STARTED.
• Tiempo de Puesta en Marcha. El monitor de rendimiento inicia un reloj al comienzo de la prueba y consulta el estado del reproductor de medios, preferiblemente usando funciones de devolucion de llamada de reproductor. Cuando el reproductor de medios transita al estado de reproduccion, el tiempo se senala como el tiempo de puesta en marcha.
• Detalles para Real. El tiempo gastado en cada una de las fases de contacto y almacenamiento temporal se mide usando las devoluciones de llamada IRMAClientAdviceSink como se describio anteriormente. El tiempo de conexion es el tiempo entre llamadas a OnContacting() y OnBuffering() y el tiempo de almacenamiento temporal inicial es el tiempo entre llamadas a OnBuffering() y OnPosLength(). El tiempo de puesta en marcha es el tiempo desde el comienzo de la prueba (incluyendo el tiempo de busqueda de DNS) hasta la primera llamada de OnPosLength().
• Detalles para WMS. El tiempo gastado en cada una de las fases de contacto y almacenamiento temporal se mide usando la interfaz IWMStatusCallback como se describio anteriormente. El tiempo de conexion es el tiempo entre los eventos WMT_CONNECTING y WMT_BUFFERING_START y el tiempo de almacenamiento temporal inicial es el tiempo entre los eventos WMT_BUFFERING_START y WMT_STARTED. El tiempo de puesta en marcha es el tiempo desde el comienzo de la prueba (incluyendo el tiempo de busqueda de DNS) hasta la primera llamada de WMT_STARTED.
• Adelgazamiento y Perdida: Como se senalo anteriormente, el PMM preferiblemente calcula el ancho de banda de reproduccion real interceptando y examinando los paquetes utiles que se envlan desde el nucleo al representador. Se calcula un total de octetos utiles entregados B anadiendo los octetos de los paquetes utiles. Se calcula un tiempo de flujo T usando una funcion de devolucion de llamada para determinar la cantidad del fragmento que se reprodujo con exito al final de la prueba. El ancho de banda de reproduccion real se calcula como B/T. El ancho de banda de reproduccion ideal es el ancho de banda de reproduccion real cuando los medios se difunden en forma continua bajo condiciones ideales sin degradacion. Esta cantidad se puede calcular de una de dos maneras. Para flujos en directo, el ancho de banda de reproduccion ideal se puede calcular como una funcion del ancho de banda codificado de los medios con algunos ajustes al hecho de que el ancho de banda de reproduccion ideal de un flujo en directo en curso mostrara algunas variaciones con el tiempo. Para flujos bajo demanda, el ancho de banda de reproduccion ideal se puede calcular con un 100% de precision calibrando los medios, es decir, midiendo el ancho de banda de reproduccion real cuando los medios se difunden de forma continua bajo condiciones de red ideales sin degradacion. En la practica, este paso de calibracion no es completamente necesario; usar el valor observado mas grande del ancho de banda de reproduccion real sobre varias docenas de pruebas funciona bien. Comparar el ancho de banda de reproduccion real con el ancho de banda de reproduccion ideal proporciona una buena nocion de cuanto adelgazamiento y perdida ocurrio.
• Detalles para Real. La manera en que el PMM intercepta paquetes utiles que fluyen desde el nucleo al representador es como sigue. Para cada complemento de representador incluido con la aplicacion RealPlayer, se proporciona un representador-contenedor que contiene el nombre del complemento original. Cuando se carga el representador-contenedor, se abre el complemento original como una biblioteca dinamica y reenvla las llamadas del metodo entrantes al representador original. Varios metodos tienen un codigo adicional para calcular las metricas. Los metodos pertinentes a la medicion de ancho de banda de reproduccion son OnPacket(), que es llamado cuando el nucleo de RealPlayer envla un paquete de datos al representador y OnTimeSync(), que pide al representador actualizar su tiempo actual.
La forma en que se cuentan los paquetes difiere ligeramente para flujos en directo y bajo demanda, pero el planteamiento basico es preferiblemente el mismo, es decir, contar los paquetes usados por el representador para un segmento de reproduccion dado. Para flujos bajo demanda, el segmento de reproduccion se conoce por adelantado (tiempo 0 a tiempo MAX_STREAM_TIME), de manera que los paquetes con un sello de tiempo menor que MAX_STREAM_TIME se cuentan como utiles. Para flujos en directo, el comienzo del segmento de reproduccion no es el tiempo 0, de manera que este planteamiento no funcionara. En su lugar, los paquetes se ponen en cola a medida que se reciben y cuando el metodo OnTimeSync() es llamado con un tiempo t, todos los paquetes con tiempo menor que t se cuentan como utiles y se eliminan de la cola. (El tipo del flujo se determina por el metodo IsLive(), un metodo de la IRMAStreamSource del IRMAStream pasado a StartStream()).
• Detalles para WMS. El PMM no requiere representadores-contenedores para obtener los paquetes utiles para WMS. Los paquetes de datos comprimidos se obtienen implementando el metodo OnStreamSample()
5
10
15
20
25
30
35
40
45
50
55
de la interfaz IWMReaderCallbackAdvanced. Un paquete se incluye si su sello de tiempo es menor que MAX_STREAM_TIME.
• Interrupciones. El numero de eventos de realmacenamiento temporal y la duracion de cada evento de realmacenamiento temporal durante la reproduccion se registra por el pMm poniendo en cola el estado del reproductor de medios usando funciones de devolucion de llamada. Ademas, se registra el tiempo de reproduccion del fragmento, que es el tiempo total que dura la reproduccion. El tiempo de reproduccion es diferente del tiempo de flujo cuando hay realmacenadores temporales. La metrica realmacenamientos temporales por minuto es simplemente el numero de eventos de realmacenamiento temporal dividido por el tiempo de reproduccion en minutos. El tiempo de realmacenamiento temporal por minuto es simplemente la duracion total de todos los eventos de realmacenamiento temporal dividido por el tiempo de reproduccion.
• Detalles para Real. El tiempo de realmacenamiento temporal se mide entre llamadas para las devoluciones de llamada OnBuffering() y OnPosLength() de la interfaz IRMAClientAdviceSink. El tiempo de flujo se mide por el ultimo tiempo pasado para la devolucion de llamada OnPosLength() y el tiempo de reproduccion es medido como el tiempo de reloj real desde la primera llamada OnPosLength().
• Detalles para WMS. El tiempo de realmacenamiento temporal se mide entre los eventos WMT_BUFFERING_START y WMT_BUFFERING_STOP en el metodo IWMStatusCallback: : OnStatus(). El tiempo de flujo se obtiene a partir del metodo IWMReaderStreamClock: : GetTime() y el tiempo de reproduccion se mide como el tiempo de reloj real desde el primer evento WMT_STARTED.
Como medir las Metricas Auxiliares
• Otras Tasas de Fallos: La tasa de fallos de DNS, tasa de fallos de conexion, tasa de fallos de almacenador temporal y tasa de desconexion de flujo todas pueden ser codigos de error calculados sacados por el agente que determina tanto la causa del fallo como el estado de la reproduccion cuando ocurrio el fallo.
• Componentes del tiempo de Puesta en Marcha: Para medir el tiempo de busqueda de DNS, el agente realiza la busqueda de DNS del nombre de servidor en si mismo usando gethostbyname() y entonces pasa la direccion IP resultante al nucleo del reproductor como parte del URL. Esto tambien permite al agente notificar la direccion IP exacta del servidor desde la cual se reproduce el flujo de prueba. Los otros componentes del tiempo de puesta en marcha se miden usando funciones de devolucion de llamada como se perfilo anteriormente.
• Metricas de Paquetes. En su mayor parte, estas metricas se obtienen usando una devolucion de llamada para las estadlsticas del reproductor. La metrica de paquetes utiles es una exception, que se calcula directamente por el PMM interceptando paquetes utiles.
• Otras Metricas de Ancho de Banda. Estas metricas tambien se calculan usando devoluciones de llamada para las estadlsticas del reproductor.
Como se senalo anteriormente, el agente de difusion en forma continua se puede implementar como un dispositivo autonomo o se puede implementar un conjunto de tales agentes, preferiblemente de una manera distribuida, para permitir a un proveedor de contenidos o de otros servicios determinar la calidad y rendimiento de flujo desde una pluralidad de ubicaciones diferentes. En tal caso, un agente se implementa en cada ubicacion tal y los agentes distribuidos se controlan para cada petition de un flujo dado. A medida que los flujos estan siendo entregados desde uno o mas servidores de medios a los reproductores de medios que incluyen el software de agente embebido, se recaban los datos. Periodicamente, los datos se transfieren desde los agentes a una ubicacion de gestion central, donde se procesan en informes o se ponen a disposition de otra manera para su vision (por ejemplo, a traves de un portal seguro), para descarga o para otro analisis. En una realization particular, los agentes comprenden parte de una red de entrega de contenidos (CDN) y se usan para permitir a un proveedor de servicios de CDN (o clientes CDN) determinar la calidad y rendimiento de flujo. Como es bien conocido, una CDN es una coleccion de servidores de contenidos y mecanismos de control asociados que descargan trabajo de servidores de origen de sitio Web entregando contenido en su nombre a usuarios finales. Una CDN bien gestionada logra esta meta sirviendo medios de difusion en forma continua o algunos o todos los contenidos de paginas Web de un sitio, reduciendo por ello los costes del cliente al tiempo que mejora la experiencia de navegacion de un usuario final del sitio. En funcionamiento, la CDN tlpicamente usa un mecanismo de encaminamiento de peticion para localizar un servidor de contenidos de CDN cerca del cliente para servir cada peticion dirigida a la CDN, donde la notion de “cerca” se basa, en parte, en la evaluation de los resultados de las pruebas de trafico de red. Una CDN se puede usar para proporcionar difusion en forma continua en directo o bajo demanda.
Habiendo descrito de esta manera nuestra invention, se expone a continuation lo que ahora reivindicamos.

Claims (6)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    REIVINDICACIONES
    1. Un aparato (400), que comprende:
    un nucleo (405); un representador (406); y
    caracterizado por un primer modulo software situado intermedio del nucleo y del representador, el primer modulo software operable para generar una primera metrica a medida que un flujo de paquetes de datos utiles se pasan entre el nucleo (405) y el representador (406), en donde la primera metrica es una estadlstica calculada a partir de los paquetes de datos utiles; y
    en donde cada paquete de datos util tiene un conjunto de propiedades asociadas con el mismo, en donde el conjunto de propiedades comprende: que el paquete de datos no se ha adelgazado por un servidor, que el paquete de datos no se perdio de una manera irrecuperable durante el transporte y que el paquete de datos llego al representador a tiempo para ser util para su representacion.
  2. 2. El aparato que se describe en la Reivindicacion 1 que ademas incluye un segundo modulo software para recibir un conjunto de pruebas que identifican al menos una prueba de calidad de flujo, para programar el conjunto de pruebas y para sacar la primera metrica capturada ejecutando el primer conjunto de codigo.
  3. 3. El aparato que se describe en la Reivindicacion 1 en donde se ejecuta el primer modulo software operable para generar una segunda metrica usando una funcion de devolucion de llamada de reproductor.
  4. 4. Un sistema de monitorizacion de flujo (300), que comprende:
    uno o mas ordenadores de monitorizacion de flujo que incluyen un primer subsistema (302) para suministrar una prueba de calidad de flujo dada; un conjunto de agentes de monitorizacion (304) colocado en ubicaciones de red dadas para ejecutar la prueba de calidad de flujo dada, cada uno de los agentes de monitorizacion asociados con un reproductor de medios de difusion en forma continua que tiene un nucleo (405), un representador (406) y caracterizado por cada agente (304) que comprende:
    un primer conjunto de codigo ejecutado en asociacion con el reproductor de medios de difusion en forma continua para interceptar cada paquete de datos util de un flujo dado a medida que el paquete de datos util sale del nucleo (405) y antes de que el paquete de datos util entre en el representador (406);
    en donde cada paquete de datos util tiene un conjunto de propiedades asociadas con el mismo, en donde el conjunto de propiedades comprende: que el paquete de datos no se ha adelgazado por un servidor, que el paquete de datos no se perdio de un manera irrecuperable durante el transporte y que el paquete de datos llego al representador (406) a tiempo para ser util para su representacion
    un segundo conjunto de codigo para capturar una metrica de calidad de flujo dada a partir de los paquetes de datos interceptados;
    un tercer conjunto de codigo para sacar datos asociados con la metrica de calidad de flujo dada; y en donde el uno o mas ordenadores de monitorizacion de flujo que incluyen tambien un segundo subsistema para recabar los datos a partir del conjunto de agentes de monitorizacion.
  5. 5. Un metodo de monitorizacion de flujo que comprende:
    entregar un flujo de medios a cada uno de un conjunto de agentes (304), cada agente (304) que tiene un nucleo (405) y un representador (406) el metodo caracterizado por;
    en cada agente (304), interceptar paquetes de datos utiles del flujo a medida que esos paquetes de datos atraviesan una interfaz entre el nucleo y el representador;
    en donde cada paquete de datos util tiene un conjunto de propiedades asociadas con el mismo, en donde el conjunto de propiedades comprende: que el paquete de datos no se ha adelgazado por un servidor, que el paquete de datos no se perdio de un manera irrecuperable durante el transporte y que el paquete de datos llego al representador (406) a tiempo para ser util para su representacion
    capturar una metrica de calidad de flujo dada a partir de los paquetes de datos utiles interceptados; sacar datos asociados con la metrica de calidad de flujo dada;
    y recabar datos de cada uno de los agentes (304) en un conjunto de uno o mas ordenadores de monitorizacion de flujo.
  6. 6. El metodo de monitorizacion de flujo que se describe en la Reivindicacion 5 que ademas incluye el paso de: permitir una vista de los datos recabados.
ES04710206.6T 2003-02-11 2004-02-11 Método y aparato para medir disponibilidad, calidad y rendimiento de flujo Expired - Lifetime ES2558864T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US364753 1989-06-12
US10/364,753 US7010598B2 (en) 2002-02-11 2003-02-11 Method and apparatus for measuring stream availability, quality and performance
PCT/US2004/004014 WO2004072820A2 (en) 2003-02-11 2004-02-11 Method and apparatus for measuring stream availability, quality and performance

Publications (1)

Publication Number Publication Date
ES2558864T3 true ES2558864T3 (es) 2016-02-09

Family

ID=32867980

Family Applications (1)

Application Number Title Priority Date Filing Date
ES04710206.6T Expired - Lifetime ES2558864T3 (es) 2003-02-11 2004-02-11 Método y aparato para medir disponibilidad, calidad y rendimiento de flujo

Country Status (4)

Country Link
US (3) US7010598B2 (es)
EP (1) EP1593234B1 (es)
ES (1) ES2558864T3 (es)
WO (1) WO2004072820A2 (es)

Families Citing this family (203)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7948875B2 (en) * 1997-08-29 2011-05-24 AIP Acquisition, LLC IP exchange quality testing system and method
WO2002103521A1 (en) * 2001-06-19 2002-12-27 Cable & Wireless Internet Services, Inc. Real-time streaming media measurement system and method
US7173911B1 (en) * 2001-12-28 2007-02-06 Cisco Technology, Inc. System and method for music-on-hold in a voice over internet protocol (VoIP) environment
EP1493093A4 (en) 2002-04-10 2008-04-23 Akamai Tech Inc METHOD AND SYSTEM FOR IMPROVING REAL FLOW DELIVERY QUALITY USING THE PRE-RAFALE TECHNIQUE
KR20050057532A (ko) * 2002-09-25 2005-06-16 코닌클리케 필립스 일렉트로닉스 엔.브이. 스트리밍 세션을 관리하는 통신 시스템과 방법
US7089319B2 (en) * 2002-12-09 2006-08-08 Anton Lysenko Method and system for instantaneous on-demand delivery of multimedia content over a communication network with aid of content capturing component, delivery-on-demand client and dynamically mapped resource locator server
US7657651B2 (en) * 2003-04-08 2010-02-02 International Business Machines Corporation Resource-efficient media streaming to heterogeneous clients
US8291062B2 (en) 2003-08-20 2012-10-16 Aol Inc. Managing access to digital content sources
US8588069B2 (en) * 2003-08-29 2013-11-19 Ineoquest Technologies, Inc. System and method for analyzing the performance of multiple transportation streams of streaming media in packet-based networks
US20150341812A1 (en) 2003-08-29 2015-11-26 Ineoquest Technologies, Inc. Video quality monitoring
US8031623B2 (en) * 2004-10-25 2011-10-04 Ineoquest Technologies, Inc. System and method for creating multiple transportation streams of streaming media network test traffic in packet-based networks
US8625455B2 (en) * 2006-10-17 2014-01-07 Ineoquest Technologies, Inc. System and method for handling streaming media
US8838772B2 (en) 2003-08-29 2014-09-16 Ineoquest Technologies, Inc. System and method for analyzing the performance of multiple transportation streams of streaming media in packet-based networks
US7321565B2 (en) * 2003-08-29 2008-01-22 Ineoquest Technologies System and method for analyzing the performance of multiple transportation streams of streaming media in packet-based networks
US8055700B2 (en) * 2003-10-31 2011-11-08 Jds Uniphase Corporation Network test/measurement agent extensible with different types of network interfaces
WO2005088929A1 (en) * 2004-02-12 2005-09-22 Nokia Corporation Classified media quality of experience
CN1914876B (zh) * 2004-02-13 2011-07-20 诺基亚公司 定时体验质量的度量
US20050235047A1 (en) * 2004-04-16 2005-10-20 Qiang Li Method and apparatus for a large scale distributed multimedia streaming system and its media content distribution
US7818444B2 (en) 2004-04-30 2010-10-19 Move Networks, Inc. Apparatus, system, and method for multi-bitrate content streaming
EP1743453A1 (fr) * 2004-05-07 2007-01-17 France Telecom Mesure de performance dans un reseau de transmission de paquets
US8010652B2 (en) * 2004-05-07 2011-08-30 Nokia Corporation Refined quality feedback in streaming services
US7852961B2 (en) * 2004-05-20 2010-12-14 Samsung Electronics Co., Ltd. Digital broadcasting transmission/reception devices capable of improving a receiving performance and signal processing method thereof
JP4142615B2 (ja) * 2004-07-05 2008-09-03 株式会社日立製作所 ネットワークサービスの性能測定方法及びプログラム
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
US7174385B2 (en) * 2004-09-03 2007-02-06 Microsoft Corporation System and method for receiver-driven streaming in a peer-to-peer network
US7801127B2 (en) 2004-10-25 2010-09-21 Ineoquest Technologies, Inc. System and method for creating a sequence number field for streaming media in a packet-based networks utilizing internet protocol
US8346956B2 (en) * 2004-10-29 2013-01-01 Akamai Technologies, Inc. Dynamic image delivery system
US7904580B2 (en) * 2005-06-30 2011-03-08 Intel Corporation Digital media player exposing operational state data
US20070058730A1 (en) * 2005-09-09 2007-03-15 Microsoft Corporation Media stream error correction
US20070058530A1 (en) * 2005-09-14 2007-03-15 Sbc Knowledge Ventures, L.P. Apparatus, computer readable medium and method for redundant data stream control
US8001471B2 (en) * 2006-02-28 2011-08-16 Maven Networks, Inc. Systems and methods for providing a similar offline viewing experience of online web-site content
US8374599B2 (en) * 2006-04-03 2013-02-12 Agilent Technologies, Inc. System and method for measuring performance of new services in consumer devices
GB2451379B (en) * 2006-05-02 2010-12-29 Kathy Mcewen System and method of providing bandwith on demand
US20070286351A1 (en) * 2006-05-23 2007-12-13 Cisco Technology, Inc. Method and System for Adaptive Media Quality Monitoring
EP1860885B1 (en) * 2006-05-23 2011-11-02 Tektronix International Sales GmbH Video transport stream analyser
CN101087438A (zh) * 2006-06-06 2007-12-12 安捷伦科技有限公司 计算无参考视频质量评估的分组丢失度量的系统和方法
US7908382B2 (en) * 2006-06-07 2011-03-15 International Business Machines Corporation System and method to optimally manage performance's virtual users and test cases
EP1885083A1 (en) 2006-08-03 2008-02-06 Acterna, LLC Triple play services tester
US8131840B1 (en) * 2006-09-12 2012-03-06 Packet Plus, Inc. Systems and methods for data stream analysis using embedded design logic
US7729381B2 (en) * 2006-09-15 2010-06-01 At&T Intellectual Property I, L.P. In-band media performance monitoring
US8566436B1 (en) 2006-11-15 2013-10-22 Conviva Inc. Data client
US8751605B1 (en) 2006-11-15 2014-06-10 Conviva Inc. Accounting for network traffic
US9124601B2 (en) 2006-11-15 2015-09-01 Conviva Inc. Data client
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
US8874964B1 (en) 2006-11-15 2014-10-28 Conviva Inc. Detecting problems in content distribution
US8274401B2 (en) * 2006-12-22 2012-09-25 Acterna Llc Secure data transfer in a communication system including portable meters
US8595784B2 (en) * 2007-01-05 2013-11-26 Verizon Patent And Licensing Inc. System for testing set-top boxes and content distribution networks and associated methods
US7848237B2 (en) * 2007-01-18 2010-12-07 Ineoquest Technologies, Inc. System and method for selective packet discard for the transport of multiple transportation streams of streaming media in packet-based networks
US8839325B2 (en) 2007-02-14 2014-09-16 At&T Intellectual Property I, L.P. System and method of managing video content quality
US8086902B2 (en) * 2007-04-16 2011-12-27 Microsoft Corporation Method and apparatus for testing media player software applications
US9628786B2 (en) * 2007-05-18 2017-04-18 At&T Intellectual Property I, L.P. System and method of indicating video content quality
US8028090B2 (en) 2008-11-17 2011-09-27 Amazon Technologies, Inc. Request routing utilizing client location information
US8589578B2 (en) * 2007-06-29 2013-11-19 Toshiba America Research, Inc. Streaming video over multiple network interfaces
US7991910B2 (en) 2008-11-17 2011-08-02 Amazon Technologies, Inc. Updating routing information based on client location
US8248953B2 (en) 2007-07-25 2012-08-21 Cisco Technology, Inc. Detecting and isolating domain specific faults
US9652210B2 (en) * 2007-08-28 2017-05-16 Red Hat, Inc. Provisioning a device with multiple bit-size versions of a software component
US8832679B2 (en) * 2007-08-28 2014-09-09 Red Hat, Inc. Registration process for determining compatibility with 32-bit or 64-bit software
US8046453B2 (en) * 2007-09-20 2011-10-25 Qurio Holdings, Inc. Illustration supported P2P media content streaming
US20090178058A1 (en) * 2008-01-09 2009-07-09 Microsoft Corporation Application Aware Networking
US8387015B2 (en) 2008-01-31 2013-02-26 Microsoft Corporation Scalable automated empirical testing of media files on media players
US7948910B2 (en) * 2008-03-06 2011-05-24 Cisco Technology, Inc. Monitoring quality of a packet flow in packet-based communication networks
US7962597B2 (en) 2008-03-31 2011-06-14 Amazon Technologies, Inc. Request routing based on class
US8447831B1 (en) 2008-03-31 2013-05-21 Amazon Technologies, Inc. Incentive driven content delivery
US8601090B1 (en) * 2008-03-31 2013-12-03 Amazon Technologies, Inc. Network resource identification
US8156243B2 (en) 2008-03-31 2012-04-10 Amazon Technologies, Inc. Request routing
US7970820B1 (en) 2008-03-31 2011-06-28 Amazon Technologies, Inc. Locality based content distribution
US8533293B1 (en) 2008-03-31 2013-09-10 Amazon Technologies, Inc. Client side cache management
US8321568B2 (en) * 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US8385532B1 (en) * 2008-05-12 2013-02-26 Avaya Inc. Real-time detective
KR100997028B1 (ko) * 2008-05-30 2010-11-25 성균관대학교산학협력단 컨텐츠의 최대 재생 시간과 사용자의 시청시간 혹은청취시간을 고려하는 관심 정보 추천 시스템 및 그 방법
US9912740B2 (en) 2008-06-30 2018-03-06 Amazon Technologies, Inc. Latency measurement in resource requests
US7925782B2 (en) 2008-06-30 2011-04-12 Amazon Technologies, Inc. Request routing using network computing components
US9407681B1 (en) 2010-09-28 2016-08-02 Amazon Technologies, Inc. Latency measurement in resource requests
WO2010042578A1 (en) 2008-10-08 2010-04-15 Citrix Systems, Inc. Systems and methods for real-time endpoint application flow control with network structure component
US8060616B1 (en) 2008-11-17 2011-11-15 Amazon Technologies, Inc. Managing CDN registration by a storage provider
US8065417B1 (en) 2008-11-17 2011-11-22 Amazon Technologies, Inc. Service provider registration by a content broker
US8122098B1 (en) 2008-11-17 2012-02-21 Amazon Technologies, Inc. Managing content delivery network service providers by a content broker
US8521880B1 (en) 2008-11-17 2013-08-27 Amazon Technologies, Inc. Managing content delivery network service providers
US8732309B1 (en) 2008-11-17 2014-05-20 Amazon Technologies, Inc. Request routing utilizing cost information
US8073940B1 (en) 2008-11-17 2011-12-06 Amazon Technologies, Inc. Managing content delivery network service providers
CN101420317B (zh) * 2008-11-21 2011-10-26 华为终端有限公司 媒体文件录制错误的修复方法、录制终端、服务器和系统
US8402494B1 (en) 2009-03-23 2013-03-19 Conviva Inc. Switching content
US8412823B1 (en) 2009-03-27 2013-04-02 Amazon Technologies, Inc. Managing tracking information entries in resource cache components
US8521851B1 (en) 2009-03-27 2013-08-27 Amazon Technologies, Inc. DNS query processing using resource identifiers specifying an application broker
US8688837B1 (en) 2009-03-27 2014-04-01 Amazon Technologies, Inc. Dynamically translating resource identifiers for request routing using popularity information
US8756341B1 (en) 2009-03-27 2014-06-17 Amazon Technologies, Inc. Request routing utilizing popularity information
US8656284B2 (en) * 2009-04-17 2014-02-18 Empirix Inc. Method for determining a quality of user experience while performing activities in IP networks
US10326848B2 (en) * 2009-04-17 2019-06-18 Empirix Inc. Method for modeling user behavior in IP networks
US8838819B2 (en) * 2009-04-17 2014-09-16 Empirix Inc. Method for embedding meta-commands in normal network packets
US8782236B1 (en) 2009-06-16 2014-07-15 Amazon Technologies, Inc. Managing resources using resource expiration data
US8407337B2 (en) * 2009-07-14 2013-03-26 Compuware Corporation Multiple instance commercial browser website test agent
ES2904304T3 (es) * 2009-07-17 2022-04-04 Implantica Patent Ltd Sistema de control por voz para un implante
US9100288B1 (en) * 2009-07-20 2015-08-04 Conviva Inc. Augmenting the functionality of a content player
US8397073B1 (en) 2009-09-04 2013-03-12 Amazon Technologies, Inc. Managing secure content in a content delivery network
US8433771B1 (en) 2009-10-02 2013-04-30 Amazon Technologies, Inc. Distribution network with forward resource propagation
JP2011114444A (ja) * 2009-11-25 2011-06-09 Fujitsu Ltd 情報処理装置,情報生成方法,およびプログラム
US9294526B2 (en) * 2009-12-28 2016-03-22 Microsoft Technology Licensing, Llc Managing multiple dynamic media streams
US9401813B2 (en) * 2009-12-29 2016-07-26 Iheartmedia Management Services, Inc. Media stream monitor
US9495338B1 (en) 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
US20110202634A1 (en) * 2010-02-12 2011-08-18 Surya Kumar Kovvali Charging-invariant and origin-server-friendly transit caching in mobile networks
US10015543B1 (en) * 2010-03-08 2018-07-03 Citrix Systems, Inc. Video traffic, quality of service and engagement analytics system and method
US8724466B2 (en) * 2010-06-30 2014-05-13 Hewlett-Packard Development Company, L.P. Packet filtering
WO2012012334A2 (en) 2010-07-19 2012-01-26 Movik Networks Content pre-fetching and cdn assist methods in a wireless mobile network
US8756272B1 (en) 2010-08-26 2014-06-17 Amazon Technologies, Inc. Processing encoded content
US10958501B1 (en) 2010-09-28 2021-03-23 Amazon Technologies, Inc. Request routing information based on client IP groupings
US8938526B1 (en) 2010-09-28 2015-01-20 Amazon Technologies, Inc. Request routing management based on network components
US9003035B1 (en) 2010-09-28 2015-04-07 Amazon Technologies, Inc. Point of presence management in request routing
US8577992B1 (en) 2010-09-28 2013-11-05 Amazon Technologies, Inc. Request routing management based on network components
US8930513B1 (en) 2010-09-28 2015-01-06 Amazon Technologies, Inc. Latency measurement in resource requests
US8468247B1 (en) 2010-09-28 2013-06-18 Amazon Technologies, Inc. Point of presence management in request routing
US8924528B1 (en) 2010-09-28 2014-12-30 Amazon Technologies, Inc. Latency measurement in resource requests
US9712484B1 (en) 2010-09-28 2017-07-18 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US8819283B2 (en) 2010-09-28 2014-08-26 Amazon Technologies, Inc. Request routing in a networked environment
US10097398B1 (en) 2010-09-28 2018-10-09 Amazon Technologies, Inc. Point of presence management in request routing
US20120238275A1 (en) * 2010-11-01 2012-09-20 Cellcrypt Limited Method of providing real-time secure communication between end points in a network
US8452874B2 (en) 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
US9391949B1 (en) 2010-12-03 2016-07-12 Amazon Technologies, Inc. Request routing processing
US8626950B1 (en) 2010-12-03 2014-01-07 Amazon Technologies, Inc. Request routing processing
US9462019B1 (en) * 2011-03-31 2016-10-04 Amazon Technologies, Inc. Adjusting network operations based on user feedback
US10467042B1 (en) 2011-04-27 2019-11-05 Amazon Technologies, Inc. Optimized deployment based upon customer locality
US8656365B2 (en) * 2011-09-01 2014-02-18 Infosys Limited Systems, methods, and computer-readable media for measuring quality of application programming interfaces
WO2013033863A1 (en) * 2011-09-07 2013-03-14 Compuware Corporation Performance monitoring of a media player launched by a web browser
US8819171B2 (en) 2011-09-07 2014-08-26 Microsoft Corporation Monitoring and benchmarking client performance from the server-side
US20140181266A1 (en) * 2011-09-29 2014-06-26 Avvasi Inc. System, streaming media optimizer and methods for use therewith
US8768366B2 (en) * 2011-10-31 2014-07-01 Paul Anthony GALWAS Network of media servers and a method of dynamically routing calls over the network of media servers
US8904009B1 (en) 2012-02-10 2014-12-02 Amazon Technologies, Inc. Dynamic content delivery
US10021179B1 (en) 2012-02-21 2018-07-10 Amazon Technologies, Inc. Local resource delivery network
US9037683B1 (en) 2012-03-05 2015-05-19 Koji Yoden Media asset streaming over network to devices
US9172674B1 (en) 2012-03-21 2015-10-27 Amazon Technologies, Inc. Managing request routing information utilizing performance information
US10623408B1 (en) 2012-04-02 2020-04-14 Amazon Technologies, Inc. Context sensitive object management
US8782727B1 (en) 2012-04-04 2014-07-15 Google Inc. Adaptive video stream testing
US10148716B1 (en) 2012-04-09 2018-12-04 Conviva Inc. Dynamic generation of video manifest files
US20130326465A1 (en) * 2012-05-31 2013-12-05 Microsoft Corporation Portable Device Application Quality Parameter Measurement-Based Ratings
US9154551B1 (en) 2012-06-11 2015-10-06 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US9525659B1 (en) 2012-09-04 2016-12-20 Amazon Technologies, Inc. Request routing utilizing point of presence load information
US10182096B1 (en) 2012-09-05 2019-01-15 Conviva Inc. Virtual resource locator
US9246965B1 (en) 2012-09-05 2016-01-26 Conviva Inc. Source assignment based on network partitioning
KR101354914B1 (ko) * 2012-09-07 2014-01-24 주식회사에어플러그 목록정보를 통해 구간들의 정보가 제공되는 미디어 컨텐트의 데이터를 중계하는 방법 및 장치
US9135048B2 (en) 2012-09-20 2015-09-15 Amazon Technologies, Inc. Automated profiling of resource usage
US9323577B2 (en) 2012-09-20 2016-04-26 Amazon Technologies, Inc. Automated profiling of resource usage
US9332051B2 (en) 2012-10-11 2016-05-03 Verizon Patent And Licensing Inc. Media manifest file generation for adaptive streaming cost management
US9100698B2 (en) * 2012-10-26 2015-08-04 Motorola Solutions, Inc. Systems and methods for sharing bandwidth across multiple video streams
US9634918B2 (en) 2012-12-13 2017-04-25 Level 3 Communications, Llc Invalidation sequencing in a content delivery framework
US20140337472A1 (en) 2012-12-13 2014-11-13 Level 3 Communications, Llc Beacon Services in a Content Delivery Framework
US9628344B2 (en) 2012-12-13 2017-04-18 Level 3 Communications, Llc Framework supporting content delivery with reducer services network
US10701148B2 (en) 2012-12-13 2020-06-30 Level 3 Communications, Llc Content delivery framework having storage services
US10791050B2 (en) 2012-12-13 2020-09-29 Level 3 Communications, Llc Geographic location determination in a content delivery framework
US10652087B2 (en) 2012-12-13 2020-05-12 Level 3 Communications, Llc Content delivery framework having fill services
US10701149B2 (en) 2012-12-13 2020-06-30 Level 3 Communications, Llc Content delivery framework having origin services
US10205698B1 (en) 2012-12-19 2019-02-12 Amazon Technologies, Inc. Source-dependent address resolution
US9348903B2 (en) 2013-02-08 2016-05-24 John Moran Methods, devices and computer readable mediums for a music recognition game
JP6117345B2 (ja) * 2013-04-16 2017-04-19 株式会社日立製作所 処理性能低下を回避するメッセージシステム
US9294391B1 (en) 2013-06-04 2016-03-22 Amazon Technologies, Inc. Managing network computing components utilizing request routing
US20150244604A1 (en) * 2014-02-24 2015-08-27 Qualcomm Incorporated Testing powerline communication devices
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
US10033627B1 (en) 2014-12-18 2018-07-24 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10091096B1 (en) 2014-12-18 2018-10-02 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10097448B1 (en) 2014-12-18 2018-10-09 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10565248B2 (en) * 2015-03-09 2020-02-18 Verizon Patent And Licensing Inc. Time-shifted playback for over-the-top linear streaming
GB201504403D0 (en) * 2015-03-16 2015-04-29 Microsoft Technology Licensing Llc Adapting encoded bandwidth
US10225326B1 (en) 2015-03-23 2019-03-05 Amazon Technologies, Inc. Point of presence based data uploading
US9887932B1 (en) 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
US9887931B1 (en) 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
US9819567B1 (en) 2015-03-30 2017-11-14 Amazon Technologies, Inc. Traffic surge management for points of presence
US9832141B1 (en) 2015-05-13 2017-11-28 Amazon Technologies, Inc. Routing based request correlation
US10616179B1 (en) 2015-06-25 2020-04-07 Amazon Technologies, Inc. Selective routing of domain name system (DNS) requests
US10097566B1 (en) 2015-07-31 2018-10-09 Amazon Technologies, Inc. Identifying targets of network attacks
US9774619B1 (en) 2015-09-24 2017-09-26 Amazon Technologies, Inc. Mitigating network attacks
US9742795B1 (en) 2015-09-24 2017-08-22 Amazon Technologies, Inc. Mitigating network attacks
US9794281B1 (en) 2015-09-24 2017-10-17 Amazon Technologies, Inc. Identifying sources of network attacks
US10270878B1 (en) 2015-11-10 2019-04-23 Amazon Technologies, Inc. Routing for origin-facing points of presence
US10257307B1 (en) 2015-12-11 2019-04-09 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10049051B1 (en) 2015-12-11 2018-08-14 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10348639B2 (en) 2015-12-18 2019-07-09 Amazon Technologies, Inc. Use of virtual endpoints to improve data transmission rates
US10230592B2 (en) * 2016-03-02 2019-03-12 Oracle International Corporation Compound service performance metric framework
US9591047B1 (en) 2016-04-11 2017-03-07 Level 3 Communications, Llc Invalidation in a content delivery network (CDN)
US10075551B1 (en) 2016-06-06 2018-09-11 Amazon Technologies, Inc. Request management for hierarchical cache
US10110694B1 (en) 2016-06-29 2018-10-23 Amazon Technologies, Inc. Adaptive transfer rate for retrieving content from a server
US9992086B1 (en) 2016-08-23 2018-06-05 Amazon Technologies, Inc. External health checking of virtual private cloud network environments
US10033691B1 (en) 2016-08-24 2018-07-24 Amazon Technologies, Inc. Adaptive resolution of domain name requests in virtual private cloud network environments
US10574718B2 (en) * 2016-08-25 2020-02-25 Comcast Cable Communications, Llc Packaging content for delivery
US10469513B2 (en) 2016-10-05 2019-11-05 Amazon Technologies, Inc. Encrypted network addresses
US10979480B2 (en) 2016-10-14 2021-04-13 8X8, Inc. Methods and systems for communicating information concerning streaming media sessions
US10333996B2 (en) * 2016-10-14 2019-06-25 CALLSTATS I/O Oy Methods and systems for analyzing streaming media sessions
US10372499B1 (en) 2016-12-27 2019-08-06 Amazon Technologies, Inc. Efficient region selection system for executing request-driven code
US10831549B1 (en) 2016-12-27 2020-11-10 Amazon Technologies, Inc. Multi-region request-driven code execution system
US10938884B1 (en) 2017-01-30 2021-03-02 Amazon Technologies, Inc. Origin server cloaking using virtual private cloud network environments
US10503613B1 (en) 2017-04-21 2019-12-10 Amazon Technologies, Inc. Efficient serving of resources during server unavailability
US11075987B1 (en) 2017-06-12 2021-07-27 Amazon Technologies, Inc. Load estimating content delivery network
US10447648B2 (en) 2017-06-19 2019-10-15 Amazon Technologies, Inc. Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP
US10742593B1 (en) 2017-09-25 2020-08-11 Amazon Technologies, Inc. Hybrid content request routing system
US10592578B1 (en) 2018-03-07 2020-03-17 Amazon Technologies, Inc. Predictive content push-enabled content delivery network
US10681001B2 (en) 2018-03-29 2020-06-09 Akamai Technologies, Inc. High precision mapping with intermediary DNS filtering
US10932130B2 (en) 2018-05-31 2021-02-23 Roku, Inc. System and method for configuring an extender device
US11395371B2 (en) * 2018-05-31 2022-07-19 Roku, Inc. Real-time assessment of multimedia service in a particular environment
US20220321435A1 (en) * 2018-10-23 2022-10-06 Apple Inc. Technologies for performance data streaming
US10862852B1 (en) 2018-11-16 2020-12-08 Amazon Technologies, Inc. Resolution of domain name requests in heterogeneous network environments
US11025747B1 (en) 2018-12-12 2021-06-01 Amazon Technologies, Inc. Content request pattern-based routing system
US10958592B2 (en) * 2019-04-12 2021-03-23 Wangsu Science & Technology Co., Ltd. Domain name bandwidth adjustment method and apparatus

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5732218A (en) * 1997-01-02 1998-03-24 Lucent Technologies Inc. Management-data-gathering system for gathering on clients and servers data regarding interactions between the servers, the clients, and users of the clients during real use of a network of clients and servers
US5958010A (en) * 1997-03-20 1999-09-28 Firstsense Software, Inc. Systems and methods for monitoring distributed applications including an interface running in an operating system kernel
US6714976B1 (en) * 1997-03-20 2004-03-30 Concord Communications, Inc. Systems and methods for monitoring distributed applications using diagnostic information
US6434532B2 (en) * 1998-03-12 2002-08-13 Aladdin Knowledge Systems, Ltd. Interactive customer support for computer programs using network connection of user machine
US6141686A (en) * 1998-03-13 2000-10-31 Deterministic Networks, Inc. Client-side application-classifier gathering network-traffic statistics and application and user names using extensible-service provider plugin for policy-based network control
US6173325B1 (en) * 1998-07-31 2001-01-09 Microsoft Corporation Method computer program product, and system for assessing the performance of a packet schedule
US6973475B2 (en) * 1999-09-18 2005-12-06 Wildtangent Dynamic scalable multi-media content streaming
GB2355901B (en) 1999-11-01 2003-10-01 Mitel Corp Marker packet system and method for measuring audio network delays
US6671724B1 (en) * 2000-03-21 2003-12-30 Centrisoft Corporation Software, systems and methods for managing a distributed network
US20020016937A1 (en) * 2000-08-02 2002-02-07 Henry Houh Method and apparatus for utilizing a network processor as part of a test system
US20020065922A1 (en) * 2000-11-30 2002-05-30 Vijnan Shastri Method and apparatus for selection and redirection of an existing client-server connection to an alternate data server hosted on a data packet network (DPN) based on performance comparisons
US7197557B1 (en) * 2001-05-29 2007-03-27 Keynote Systems, Inc. Method and system for evaluating quality of service for streaming audio and video

Also Published As

Publication number Publication date
EP1593234A2 (en) 2005-11-09
US7725576B2 (en) 2010-05-25
US20040136327A1 (en) 2004-07-15
WO2004072820A2 (en) 2004-08-26
WO2004072820A3 (en) 2004-12-23
EP1593234A4 (en) 2011-04-13
US20100235503A1 (en) 2010-09-16
EP1593234B1 (en) 2015-10-14
US20060179154A1 (en) 2006-08-10
US7010598B2 (en) 2006-03-07

Similar Documents

Publication Publication Date Title
ES2558864T3 (es) Método y aparato para medir disponibilidad, calidad y rendimiento de flujo
US7197557B1 (en) Method and system for evaluating quality of service for streaming audio and video
US8159957B2 (en) Hardware time stamping and synchronized data transmission
US7508815B2 (en) Method and system for facilitating network troubleshooting
US9774910B2 (en) Method and apparatus for evaluating media delivery quality
US20140139687A1 (en) Monitoring device and method for monitoring a video session in a data network
US8619588B2 (en) System and method for predicting video transmission quality through a network
US20070271590A1 (en) Method and system for detecting of errors within streaming audio/video data
US8712883B1 (en) System and method for dynamic quality-of-service-based billing in a peer-to-peer network
US20070127389A1 (en) Method of monitoring the quality of a realtime communication
CN105450675B (zh) 一种流媒体播放中客户端选择cdn服务节点的方法
Bielievtsov et al. Network Technology for Transmission of Visual Information.
JP6992813B2 (ja) 動画再生ビットレート推定装置、動画再生ビットレート推定方法、動画再生ビットレート推定プログラム及び通信品質測定装置
Dalal et al. A new architecture for measuring and assessing streaming media quality
EP3926922A1 (en) Over-the-top media service testing and qoe issues isolation
US7821943B2 (en) Data transmission
US20160352857A1 (en) Method for adapting the behavior of a cache, and corresponding cache
Wang et al. RealTracer—Tools for measuring the performance of RealVideo on the Internet
KR100587972B1 (ko) 인터넷 멀티미디어 서비스 품질 평가 방법
TW201527979A (zh) 調適快取行為之方法及對應之快取
CN107623847B (zh) 一种视频业务的视频质量评估方法和装置
Ellis Understanding the performance of Internet video over residential networks
Ahsan et al. DASHing towards hollywood
US20210044641A1 (en) Content player performance detection
JP2005102049A (ja) ストリーミングコンテンツ配信管理システム