ES2799698T3 - Procedimiento y dispositivo de ordenación de paquetes para su enrutado en una red con determinación implícita de los paquetes a tratar con prioridad - Google Patents

Procedimiento y dispositivo de ordenación de paquetes para su enrutado en una red con determinación implícita de los paquetes a tratar con prioridad Download PDF

Info

Publication number
ES2799698T3
ES2799698T3 ES15150092T ES15150092T ES2799698T3 ES 2799698 T3 ES2799698 T3 ES 2799698T3 ES 15150092 T ES15150092 T ES 15150092T ES 15150092 T ES15150092 T ES 15150092T ES 2799698 T3 ES2799698 T3 ES 2799698T3
Authority
ES
Spain
Prior art keywords
packet
flow
queue
packets
priority
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES15150092T
Other languages
English (en)
Inventor
James Roberts
Sara Oueslati
Abdesselem Kortebi
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.)
Orange SA
Original Assignee
Orange SA
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 Orange SA filed Critical Orange SA
Application granted granted Critical
Publication of ES2799698T3 publication Critical patent/ES2799698T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/20Traffic policing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/15Flow control; Congestion control in relation to multipoint traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • H04L47/525Queue scheduling by attributing bandwidth to queues by redistribution of residual bandwidth
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • H04L47/527Quantum based scheduling, e.g. credit or deficit based scheduling or token bank
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/621Individual queue per connection or flow, e.g. per VC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/822Collecting or measuring resource availability data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/83Admission control; Resource allocation based on usage prediction

Landscapes

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

Abstract

Procedimiento de ordenación de paquetes que pertenecen a diferentes flujos (i), asociándose una cola de espera (Queue_i) a cada uno de dichos flujos, incluyendo este procedimiento, tras la recepción de un paquete (p): - la determinación del flujo (i) al que pertenece el paquete (p); - una etapa (E40, E54) de determinación de la prioridad de dicho paquete (p), siendo considerado un paquete como prioritario cuando: - dicho paquete es el primer paquete de un flujo no activo, siendo considerado un flujo como no activo cuando no se haya recibido ningún paquete de este flujo en un ciclo actual o - dicho paquete es uno de los paquetes de un flujo activo (i), siendo considerado un flujo como activo después de la recepción de un primer paquete que pertenece a este flujo y hasta que la cola de espera (Queue_i) asociada a este flujo esté vacía, en tanto que el número de octetos de este flujo (i) recibidos en el transcurso del ciclo actual sea inferior a una cuota (Q_i) asociada a un flujo (i) para este ciclo actual; y - si dicho paquete (p) se determina como que es no prioritario, una etapa (E58) de puesta en cola de este paquete (p) en la cola de espera (Queue_i); comprendiendo dicho procedimiento además la emisión de paquetes en el transcurso de dicho ciclo en el siguiente orden: - las colas de espera se tratan cíclicamente, consistiendo el tratamiento de una cola de espera (Queue_i) en emitir unos paquetes contenidos en esta cola hasta el nivel de dicha cuota (Q_i) y - los paquetes prioritarios se emiten con prioridad con relación a los paquetes contenidos en las colas de espera.

Description

DESCRIPCIÓN
Procedimiento y dispositivo de ordenación de paquetes para su enrutado en una red con determinación implícita de los paquetes a tratar con prioridad
Antecedentes de la invención
La invención se refiere al campo de la arquitectura de redes de telecomunicaciones.
Se dirige más particularmente, a un procedimiento, a un dispositivo de ordenación y a un enrutador de paquetes de datos multiservicio que se dirigen a mejorar la calidad del servicio de encaminamiento de paquetes de datos multiservicio incluidos en diferentes flujos de esta red, de reducida complejidad.
Se aplica en particular a la red de Internet.
La noción de "flujo" utilizada en este documento es por ejemplo la de la arquitectura "flow-aware" expuesta en el artículo de Bonald et al. "P traffic and QoS control: the need for a flow-aware architecture", World Telecom Conference, París, 2002.
La Internet tiene vocación multiservicio y está llamada a suministrar el soporte para una gran gama de servicios y aplicaciones. Se distinguen dos grandes clases de tráfico en esta red, el tráfico en tiempo real (o tráfico de "streaming") producido en general por las aplicaciones de audio o vídeo y el tráfico de datos (o tráfico elástico) que corresponde a la transferencia de documentos digitales. El tráfico en tiempo real tiene unas exigencias de calidad de servicio que corresponden a la necesidad de conservación de la señal —las variaciones de velocidad que caracterizan la señal producida por la fuente deben preservarse cuando la señal atraviesa la red—. La calidad de servicio del tráfico de datos se mide por el tiempo de transferencia de los documentos. Este tiempo, o de manera equivalente la velocidad media realizada durante la transferencia, depende de toda la cadena de comunicación desde el origen al destino. Un objetivo de calidad de servicio para una red de Internet podría ser parecer transparente al tráfico de datos no introduciendo reducción de velocidad suplementaria con relación a las limitaciones introducidas en otros sitios (servidor, redes de acceso, equipo del usuario); en este sentido la red asegura la conservación de la velocidad de los flujos de datos.
La red Internet pública ofrece un servicio de transporte a clientes usuarios en un contexto comercial. Es por tanto importante la cuestión de la tarificación. La arquitectura de la red debe permitir un retorno de inversión para el operador con precios competitivos para los servicios de calidad solicitados por los usuarios.
Se conoce un método de ordenación de reducida complejidad (del orden O(1), es decir independiente del número de flujos) bautizado DRR (por "Deficit Round Robin") y descrito por M. SHREEd Ha R y G. VAr Gh ESE:
"Efficient fair queuing using Deficit round robin", IEEE/ACM Transactions on Networking, Volumen: 4, Edición: 3, junio de 1996, páginas 375-385.
El método DRR es un método de ordenación basado en el tratamiento de los flujos de manera cíclica, según el principio "round robin". Este método asocia una cola de espera a cada flujo, tratados cíclicamente cada uno de estas colas de espera, estando autorizado para emitir, por ciclo, unos paquetes hasta el nivel de una cuota (cantidad de datos, por ejemplo medida en octetos).
Este método DRR permite tener un grado de equidad razonable gracias al mantenimiento de un contador de déficit que permite compensar la diferencia eventual de tamaño de los paquetes de los diferentes flujos.
Unas variantes del método DRR han permitido asociar un tratamiento prioritario a los paquetes de ciertos flujos.
En particular, el método DRR+, descrito en el artículo antes citado, permite tratar con prioridad los flujos sensibles al retardo, en detrimento de los flujos de "best effort". En este método, los flujos prioritarios deben respetar un contrato, a saber el de no emitir más que un cierto volumen de datos durante un periodo de tiempo predeterminado.
El artículo "Pre-Order Decifit Round Robin: a new scheduling algorithm for packet-switched networks", COMPUTER NETWORKS, ELSEVIER SCIENCE PUBLISHERS B.V., AMSTERDAM NL, vol. 35, n° 2-3, febrero de 2001, propone igualmente un procedimiento de ordenación de paquetes que pertenecen a diferentes flujos, que se basa en este mismo método de DRR.
El documento FR2854296 del presente solicitante propone un método de ordenación con diferenciación implícita de los paquetes a tratar con prioridad y que permite en consecuencia superar ventajosamente este tipo de contrato. Pero el método de ordenación descrito en este documento, de tipo "self-clock fair queuing" es de orden O(log n), siendo n el número de flujos a tener en cuenta, lo que puede aparecer como una limitación para su implementación en ciertos tipos de enrutadores.
La invención se dirige a resolver los inconvenientes anteriores.
Objeto y sumario de la invención
Con este fin, y según un primer aspecto, se refiere a un procedimiento de ordenación de paquetes que pertenecen a diferentes flujos según la reivindicación 1. Correlativamente, la invención se refiere también a un dispositivo de ordenación de paquetes que pertenecen a diferentes flujos según la reivindicación 4. Las reivindicaciones dependientes describen modos de realización preferidos.
De este modo, la ordenación según la invención se distingue de las del estado de la técnica conocida hasta el momento, en que realiza una distinción de la prioridad de los flujos en función de sus características intrínsecas de velocidad y no en función de un contrato o de una atribución externa de un nivel de prioridad asociado a los paquetes o a los flujos, todo mientras se mantiene una complejidad independiente del número de flujos.
El dispositivo y el procedimiento de ordenación ordenan los paquetes en una cola de espera, según un algoritmo de reparto equitativo con prioridad.
Una ordenación de tipo "reparto equitativo con prioridad" permite dar prioridad a los paquetes de flujos cuya velocidad es inferior a un umbral dinámico. Este umbral corresponde a la velocidad que produciría un flujo si tuviera siempre paquetes a emitir.
Ventajosamente, este procedimiento y este dispositivo de ordenación se basan en el método de ordenación DRR anteriormente mencionado.
En un modo particular de realización, el procedimiento de ordenación según la invención incluye además una etapa de medida de contadores de congestión destinados a ser tratados para el cálculo de estimadores de congestión utilizados para un control de admisión. Estos estimadores de congestión pueden servir principalmente para un control de admisión en el núcleo de la red.
En un modo particular de realización, estos estimadores (o parámetros) de congestión están constituidos por:
- un valor de velocidad equitativa, que es una medida de la velocidad que produciría un flujo de datos que tuviera siempre paquetes a emitir; y
- un valor de carga prioritaria, que corresponde al volumen de dichos paquetes prioritarios, transmitidos durante un intervalo de tiempo, dividido por la duración de este intervalo.
Según un segundo aspecto, la invención se dirige también a un enrutador de paquetes que incluye un dispositivo de ordenación tal como el mencionado anteriormente y a un módulo de control de admisión de los paquetes en función de los parámetros de congestión medidos por el dispositivo de ordenación.
En un modo particular de realización, el módulo de admisión está adaptado además para encaminar directamente los paquetes que pertenecen a unos flujos llamados protegidos, a saber los flujos para los que se ha recibido al menos un paquete por dicho módulo de admisión después de un intervalo de tiempo predeterminado.
Dicho dispositivo o procedimiento puede funcionar, sin medios de control de admisión, principalmente en el marco de una red de acceso en la que el riesgo de congestión es más controlable que en el núcleo de la red.
En un modo particular de realización, las etapas del procedimiento de ordenación se ejecutan por un ordenador bajo el control de instrucciones de un programa informático. Por consiguiente, la invención se refiere igualmente a un programa informático almacenado en un soporte de informaciones, incluyendo este programa instrucciones que permiten la implementación de un procedimiento de ordenación tal como se ha mencionado anteriormente, cuando este programa es cargado y ejecutado por un sistema informático.
La invención se dirige también a un soporte de informaciones legible por un sistema informático, eventualmente total o parcialmente extraíble, principalmente un CD-ROM o soporte magnético, tal como un disco duro o disquete, o un soporte transmisible, tal como una señal eléctrica u óptica, caracterizado por que incluye instrucciones de un programa informático que permiten la implementación de un procedimiento de ordenación tal como se ha mencionado anteriormente, cuando este programa es cargado y ejecutado por un sistema informático.
Las ventajas particulares del dispositivo de ordenación, del enrutador, del soporte de informaciones y del programa informático, al ser idénticas a las del procedimiento de ordenación mencionado anteriormente, no se recordarán aquí.
Breve descripción de los dibujos
surgirán más claramente otros aspectos y ventajas de la presente invención con la lectura de la descripción de los modos particulares de realización que sigue, haciéndose esta descripción únicamente a título de ejemplo no limitativo y realizada con referencia a los dibujos adjuntos en los que:
- la figura 1 representa, en forma de organigrama, las principales etapas de un operador de puesta en cola en un procedimiento de ordenación de acuerdo con la invención, en un modo particular de realización;
- la figura 2 representa, en forma de organigrama, las principales etapas de un operador de extracción de cola en un procedimiento de ordenación de acuerdo con la invención, en un modo particular de realización;
- las figuras 3A a 3F representan un ejemplo de funcionamiento del procedimiento de ordenación de las figuras 1 y 2; - la figura 4 representa un dispositivo de ordenación de acuerdo con la invención en un modo particular de realización; y
- la figura 5 representa un dispositivo de tratamiento de paquetes de acuerdo con la invención en un modo particular de realización.
Descripción detallada de un modo de realización
Se va a describir ahora un procedimiento de ordenación de acuerdo con la invención en un modo particular de realización. En el ejemplo descrito en el presente documento, este procedimiento de ordenación se implementa mediante un programa informático PROG_ORD.
De acuerdo con la invención, este procedimiento de ordenación es un procedimiento de tipo DRR, modificado con el fin de permitir un tratamiento prioritario a los paquetes de flujos cuya velocidad no sobrepasa la velocidad equitativa. En el modo particular de realización descrito en este caso, este procedimiento de ordenación permite además realizar unas medidas de congestión necesarias para un módulo de control de admisión descrito posteriormente con referencia a la figura 4.
Se supondrá en lo que sigue que el procedimiento de ordenación trata unos paquetes p, que pertenecen a unos flujos de índice i.
En el modo particular de realización descrito en este caso, el procedimiento de ordenación según la invención utiliza unas colas de espera diferentes Queue_i para memorizar los paquetes p de cada uno de los flujos activos i.
Se observará que el procedimiento de ordenación según la invención permite una cuota Q_i diferente por flujo i, aunque la aplicación propuesta de diferenciación implícita de calidad de servicio supone que las cuotas Q_i sean idénticas e iguales al tamaño máximo de un paquete MTU (Maximum Transfert Unit).
En todo caso, la cuota Q_i es superior o igual al tamaño máximo MTU.
En el ejemplo detallado descrito en el presente documento, se enumeran estas colas de espera de 1 a n, siendo n el número máximo de flujos activos.
El procedimiento de ordenación descrito en el presente documento utiliza además una cola de espera suplementaria reservada a un flujo activo destinado a la medida de la velocidad equitativa, debiendo entenderse la velocidad equitativa como la velocidad que produciría un flujo de datos que tuviera permanentemente unos paquetes a emitir. De acuerdo con la invención, el procedimiento de ordenación utiliza igualmente una cola de espera prioritaria PQ para servir a los paquetes determinados como prioritarios en función de las características intrínsecas de la velocidad de los flujos a los que pertenecen.
En lo que sigue de la descripción se distinguirán las colas de espera "reales" (PQ, Queue_1, ..., Queue_n) de la cola de espera "ficticia" para la medida de la velocidad equitativa.
Las colas de espera reales son todas unas colas de espera de tipo FIFO (first in first out) conocidas para el experto en la materia.
El procedimiento de ordenación según la invención descrito en el presente documento utiliza igualmente una lista de flujos activos ActiveList, y dos operadores, InsertActiveList() y RemoveActiveList(), respectivamente adaptados para añadir un índice de flujo al final de la lista de los flujos activos ActiveList y a extraer un índice de flujo de esta lista. El procedimiento de ordenación utiliza igualmente una función FreeBuffer() adaptada para liberar un lugar de memoria rechazando el paquete situado en la cabeza de la cola de espera Queue_i más largo, según el método descrito en "Stochastic Fairness Queueing", P. McKenney, Internetworking: Research and Experience, Vol. 2, enero 1991, páginas 113-131.
Pueden utilizarse también otras estrategias de liberación de la memoria que se ocupan de preservar la equidad entre los flujos.
Como la mayor parte de los procedimientos de ordenación conocidos, el procedimiento de ordenación según la invención descrito en el presente documento utiliza principalmente dos operadores estándar de manipulación de colas de espera:
- un operador InsertInQueue() de inserción de un paquete al final de cola;
- un operador RemoveFromQueue() adaptado para devolver el elemento en cabeza de la cola.
En el transcurso de una etapa preliminar de inicialización, el programa de ordenación PROG_ORD inicializa los contadores de déficit DC_i a 0 para todas las colas de espera Queue_i e inserta, en la lista de los flujos activos ActiveList, el índice 0 que corresponde al flujo ficticio para la medida de la velocidad equitativa.
Se van a describir ahora, con referencia a la figura 1, las principales etapas del operador de puesta en cola Enqueue(). T ras la recepción de un paquete p, el operador de puesta en cola Enqueue() implementa una primera etapa E10 en el transcurso de la que comprueba si la zona de memoria tampón ("buffer zone" en inglés) en la que se memorizan los paquetes de todos los flujos activos está o no saturada;
si la memoria tampón está saturada, el resultado de la prueba E10 es positivo.
Esta prueba es seguida entonces por una etapa E20 en el transcurso de la que se libera del sitio memoria rechazando el paquete situado en la cabeza de la cola de espera Queue_i más largo, y esto por llamada a la función FreeBuffer() antes citada.
La etapa E20 de liberación de memoria es seguida por una etapa E30, en el curso de la que se obtiene el número i del flujo al que pertenece el paquete p.
Por el contrario, si la lista de flujos activos ActiveList no está llena, el resultado de la prueba E10, anteriormente descrita, es negativo. Esta prueba es seguida entonces por la etapa E30 de obtención descrita anteriormente.
La etapa E30 de obtención del índice de flujo es seguida por una prueba E40, en el curso de la que se verifica si el flujo i del paquete p está activo, lo que se convierte en verificar si el flujo i está contenido en la lista de flujos activos ActiveList.
Cuando no es ese el caso, el resultado de la prueba E40 es negativo. Esta prueba es seguida entonces por una etapa E42, en el curso de la que se inserta el flujo i en la lista de los flujos activos ActiveList por llamada a la función InsertActiveList() antes citada.
Esta etapa E42 de inserción es seguida por una etapa E44, en el curso de la que se inicializa a 0 un contador de déficit DC_i de la cola de espera Queue_i asociada al flujo activo i.
Este contador de déficit DC_i, es similar al del método de ordenación DRR conocido para el experto en la materia. De acuerdo con la invención, cada flujo nuevamente recibido puede emitir, por ciclo, unos datos con prioridad a la altura de su cuota Q_i.
Para esto, la etapa E44 de inicialización es seguida por una etapa E46, en el curso de la que se memoriza en una variable BytesCount_i, el tamaño size(p) del paquete p, utilizándose esta variable BytesCount_i para memorizar el número de octetos de los paquetes del flujo i a tratar con prioridad.
Esta etapa E46 de asignación es seguida por una etapa E48, en el curso de la que se añade el paquete p al final de la cola prioritaria PQ, utilizando la función InsertInQueue() de inserción de un paquete al final de una cola de espera. Esta etapa E48 de puesta en cola es seguida por una etapa E50, en el curso de la que se inicializa una variable Silence con un valor booleano FALSO con el fin de memorizar el hecho de que al menos un paquete p está listo para ser emitido.
Como se describe posteriormente, este indicador Silence se utiliza para medir la velocidad equitativa en caso de ausencia de tráfico, siendo representado el estado de ausencia de tráfico por el hecho de que el identificador es igual al valor booleano VERDADERO.
Esta etapa E50 finaliza el procedimiento de puesta en cola del paquete p en este modo de realización. Cuando el paquete p en curso de tratamiento es el paquete de un flujo i activo, el resultado de la prueba E40 descrita anteriormente es positivo.
Esta prueba es seguida entonces por una etapa E52, en el curso de la que se añade, al contenido de la variable antes citada BytesCount_i, el tamaño del paquete p, utilizándose esta variable BytesCount_i para memorizar el número de octetos de los paquetes del flujo i a tratar con prioridad.
Esta etapa de acumulación es seguida por una prueba E54, en el curso de la que se verifica si el número de octetos del flujo i del paquete p a tratar con prioridad (a saber BytesCount_i) es inferior o igual a la cuota Q_i de la cola de espera Queue_i reservado a este flujo.
Si ese es el caso, el resultado de la prueba E54 es positivo. Esta prueba es seguida entonces por una etapa de puesta en cola E56, similar a la etapa de puesta en cola E48, ya descrita, en el curso de la que se añade el paquete p al final de la cola prioritaria PQ.
Por el contrario, si el número de octetos BytesCount_i a tratar con prioridad para el flujo i excede la cuota Q_i para este ciclo, el resultado de la prueba E54 es negativo. Esta prueba es seguida entonces por una etapa E58 de puesta en cola del paquete p en la cola normal, es decir no prioritaria, Queue_i reservada a este flujo i.
Las etapas E56 y E58 de puesta en cola finalizan el procedimiento de puesta en cola de este modo particular de realización.
Se van a describir ahora, con referencia a la figura 2, las principales etapas del operador de extracción de cola Dequeue().
Este operador Dequeue() de fin del tratamiento de un paquete se implementa:
- al final de cada operación de envío de un paquete p; y
- a continuación de la llegada de un paquete cuando el sistema está vacío, cumpliéndose esta segunda condición cuando cada cola de espera Queue_i, para i variando de 1 a n, está vacío y la cola PQ está vacía.
En el ejemplo de realización descrito aquí, este operador Dequeue() se realiza en la forma de un bucle sin fin, constituido por las etapas F10 a F84 que se van a describir ahora.
En el curso de una primera etapa F10, se verifica si la cola prioritaria PQ está vacía. Si no es ese el caso, esta prueba F10 es seguida por una etapa F20, en el curso de la que se extrae el paquete p en cabeza de la lista de la cola prioritaria PQ.
Esta operación se efectúa utilizando la función RemoveFromQueue() adaptada para devolver un elemento en cabeza de una cola de espera.
Esta etapa F20 de extracción es seguida por una etapa F22, similar a la etapa E30 ya descrita con referencia a la figura 1, de obtención del número de flujo i de este paquete p.
Esta etapa F22 de obtención es seguida por una etapa F24 en el curso de la que se emite el paquete p.
Esta etapa de envío F24 es seguida por una etapa F26, en el curso de la que se sustrae, al contador de déficit DC_i de la cola de espera Queue_i asociada al flujo i del paquete p retirado de la cola prioritaria PQ en la etapa F20, el tamaño size(p) de este paquete p.
Esta etapa F26 de sustracción es seguida por una etapa F28, en el curso de la que se añade el tamaño del paquete p al contenido de una variable PB, utilizándose esta variable PB para memorizar el volumen del tráfico a tratar con prioridad.
Esta etapa de acumulación F28 es seguida por la prueba F10 ya descrita, en el curso de la que se verifica si la cola prioritaria PQ está vacía. De este modo, las etapas F10 a F28 constituyen un bucle que se prolonga en tanto que haya paquetes presentes en la cola prioritaria PQ.
En el curso de este bucle, los contadores de déficit DC_i asociados a los flujos i cuyos paquetes se han emitido con prioridad se incrementa con el fin de impedir que cada uno de los flujos sobrepase su cuota Q_i en el ciclo actual. Cuando la cola prioritaria PQ está vacía, el resultado de la prueba F10 es positivo. Esta prueba es seguida entonces por una prueba F30, en el curso de la que se verifica si al menos un flujo real está activo.
En el modo de realización descrito en este caso, esto se convierte en verificar que la lista de flujos activos ActiveList contiene más de un elemento, conteniendo esta lista de cualquier manera el flujo ficticio 0 utilizado para la medida de la velocidad equitativa.
Cuando no es ese el caso, el resultado de esta prueba F30 es negativo. Esta prueba es seguida entonces por una etapa F32 en el curso de la que se asigna a la variable Silence, descrita anteriormente en la etapa E50 de la figura 1, la constante booleana VERDADERO, con el fin de representar el hecho de que no hay ya ningún paquete a emitir, tanto si está en la cola prioritaria PQ como en una de sus colas de espera no prioritarias Queue_i.
Esta etapa de asignación F32 es seguida por la etapa F10 ya descrita, en el curso de la que se comprueba si la cola prioritaria PQ está vacía o no.
Cuando está activo al menos un flujo real, el resultado de la prueba F30 es positivo. Esta prueba es seguida entonces por una etapa F34, en el curso de la que se obtiene el identificador del flujo i en cabeza de la lista de los flujos activos ActiveList.
Esta etapa de obtención F34 es seguida por un conjunto de etapas F40 a F44, destinado a medir el volumen de octetos FB que habría podido emitir el flujo ficticio 0, sirviendo este volumen FB, como se describe posteriormente, para estimar la velocidad equitativa.
De manera más precisa, en el curso de la etapa F40, se comprueba si el flujo obtenido en cabeza de la lista de los flujos ActiveList en la etapa precedente F34, es el flujo ficticio 0.
Si ese es el caso, el resultado de la prueba F40 es positivo. Esta prueba es seguida entonces por una etapa F42, en el curso de la que se añade al volumen FB la cuota Q_0 asignada al flujo ficticio 0.
Esta etapa de acumulación F42 es seguida por una etapa F44, en el curso de la que se retira la cola ficticia 0 de la cabeza del ciclo para volver a añadirla inmediatamente al final del ciclo utilizando las operaciones estándar InsertActiveList() y RemoveActiveList() antes citadas.
Cuando el flujo activo i obtenido en cabeza de la lista de los flujos activos ActiveList, en el curso de la etapa F34 es un flujo real, el resultado de la prueba F40 es negativo.
Esta prueba es seguida entonces por una etapa F50, en el curso de la que, se añade, al valor actual del contador de déficit DC_i para este flujo i, su cuota Q_i.
Esta etapa de acumulación F50 es seguida por una serie de etapas F60 a F68 para emitir los paquetes del flujo i hasta una altura de su cuota Q_i.
De manera más precisa, en el curso de una prueba F60, se verifica que el contador de déficit DC_i es estrictamente positivo y que la cola de espera no prioritaria Queue_i no está vacía.
Cuando ese es el caso, el resultado de la prueba F60 es positivo. Esta prueba es seguida entonces por una etapa F61, en el curso de la que se memoriza en una variable s el tamaño del paquete en la cabeza de la cola de espera Queue_i.
Esta etapa F61 es seguida por una prueba F62 en el curso de la que se verifica si este tamaño s es inferior o igual al contador de déficit DC_i para este flujo.
Cuando ese es el caso, el resultado de la prueba F62 es positivo. Esta prueba es seguida entonces por una etapa F64, en el curso de la que se envía este paquete, después de haberla retirado de la cola de espera Queue_i mediante la utilización de la función RemoveFromQueue().
La etapa F64 de envío es seguida por una etapa F66, en el curso de la que se sustrae, del contador de déficit DC_i, el tamaño s de este paquete.
Esta etapa de sustracción F66 es seguida por la prueba F60 ya descrita, en el curso de la que se verifica que la cola de espera Queue_i asociada al flujo i no está vacía y que el contador de déficit DC_i para esta cola es estrictamente positivo.
Cuando se han emitido todos los paquetes del flujo i, hasta la cuota DC_i autorizada, el resultado de la prueba F60 o de la prueba F62 es negativo.
Se retira entonces, en el curso de una etapa F70 el flujo i de la lista de los flujos activos ActiveList utilizando el operador RemoveActiveList, ya mencionado.
Esta etapa F70 de retirada es seguida por una prueba F80, en el curso de la que se verifica si la cola de espera Queue_i asociada al flujo i está vacía.
Si ese es el caso, se inicializa a 0 el contador del déficit DC_i asociado a este flujo i, en el curso de una etapa F82 de inicialización.
En caso contrario, se inserta el flujo i al final de la lista de los flujos activos ActiveList, utilizando la función InsertActiveList en el curso de una etapa de inserción F84.
Las etapas F82 de inicialización del contador de déficit DC_i y F84 de inserción del flujo i en la lista de los flujos activos ActiveList son seguidas por la prueba F10 ya descrita.
El experto en la materia comprenderá que, en la práctica, la lista de los flujos activos ActiveList debe redimensionarse para una reducida probabilidad de desbordamiento.
En un modo particular de realización, cuando se recibe un paquete de un nuevo flujo y la lista de los flujos activos ActiveList está llena, este paquete se pone en la cola prioritaria PQ pero el flujo al que pertenece no se vuelve añadir a la lista de los flujos activos ActiveList.
Este paquete es enviado entonces (etapa F24) pero las informaciones asociadas al flujo al que pertenece no se actualizan.
De este modo, los paquetes a los que se aplica el tratamiento de excepción son prioritarios incluso si la velocidad de su flujo excede la velocidad equitativa actual.
Esta violación no es molesta en la medida en la que la probabilidad de permanecer en este estado es muy reducida para un flujo de velocidad superior a la velocidad equitativa a medida que vayan llegando paquetes.
Se ha de observar que el algoritmo de ordenación, según la invención, basado en el método DRR conocido es de complejidad en O(1).
Las figuras 3A a 3F ilustran un ejemplo de funcionamiento del procedimiento de ordenación de acuerdo con la invención descrito anteriormente, con referencia a las figuras 1 y 2.
Se supondrá en este caso que esta descripción comienza con la hipótesis de tres colas de espera Queue_1, Queue_2, Queue_3 que contienen unos paquetes p de los flujos respectivos flujo 1, flujo 2, flujo 3. El tamaño de sus paquetes se notifica en estas figuras.
Se supondrá también que al comienzo de este escenario, la cola prioritaria PQ está vacía.
Finalmente, el valor de la cuota Q_i añadida a cada flujo i se supone igual a 1.500.
En estas diferentes figuras, la flecha negra indica la cabeza de la lista de los flujos activos en el ciclo, siguiendo este ciclo el orden de las colas no prioritarias siguiente: Queue_1, Queue_2, Queue_3, Queue_4.
El paquete en curso de servicio se sombrea en cada una de las diferentes etapas. Inicialmente, como se representa en la figura 3A, el flujo que está en cabeza de la lista es el flujo 1 asociado a la cola de espera Queue_1.
Su contador de déficit DC_1 se aumenta por su cuota Q_1, a saber 1.500.
El enrutador 100 debe comenzar por tanto a servir el primer paquete, sombreado, de esta cola de espera Queue_1, siendo en este caso el tamaño de este paquete de 500 octetos.
Se supone, con referencia a la figura 3B, que llega un paquete que pertenece a un nuevo flujo 4, durante el servicio del paquete anterior.
Se crea una cola Queue_4 y se asocia a este flujo 4.
Contrariamente a lo que pasaría en el marco de una ordenación de tipo DRR clásica, este paquete se inserta en este caso en la cola prioritaria PQ, como se ha descrito anteriormente, con referencia a la etapa E48.
Sin embargo, se prosigue el tratamiento del flujo 1, siendo el tamaño del segundo paquete de la Queue_1, a saber 500 objetos, inferior al nuevo déficit DC_1 (resultados de las pruebas F60 y F62 positivas).
En la etapa representada en la figura 3C, el tratamiento del flujo 1 se alcanza puesto que el déficit DC_1 asociado a la cola de espera Queue_1 es igual a 500, siendo este déficit inferior al tamaño 1.000 del próximo paquete (resultado de la prueba F62 negativo).
De acuerdo con la invención y, contrariamente a lo que pasaría en el marco de una ordenación de tipo DRR clásica, se sirve la cola prioritaria PQ (resultado negativo de la prueba F10), conteniendo este el paquete que pertenece al flujo 4 del que se resta el déficit DC_4 (véase la etapa F66).
En el curso de la etapa siguiente representada en la figura 3D, habiéndose convertido la cola prioritaria PQ en vacía (prueba F10 positiva), se trata el primer flujo real activo (prueba F30 positiva), a saber en este caso el flujo 2, asociado a la cola de espera Queue_2.
En el curso de la etapa siguiente representada en la figura 3E, se trata el flujo siguiente (flujo 3) porque el tamaño del paquete que permanece en la cola de espera Queue_2 es superior a la cuota DC_2 asociada a esta cola de espera (resultado negativo de la prueba F62).
La última etapa representada en la figura 3F, constituye el comienzo de un nuevo ciclo en el que se vuelve a comenzar a servir el flujo 1. El flujo 4 ya no está activo porque su cola Queue_4 está vacía, no forma parte por tanto del ActiveList.
La figura 4 representa un dispositivo de ordenación 100 de acuerdo con la invención en un modo particular de realización. Típicamente, este dispositivo de ordenación puede implementarse en un enrutador o en un procesador o microprocesador para un enrutador.
De manera clásica, este dispositivo recibe los paquetes p, que ordena con el fin de su emisión, o que rechaza en caso de desbordamiento.
En esta figura 4, la referencia 34 designa el inicio de los paquetes (etapas F24, F64) mientras que la referencia 32 designa el rechazo de los paquetes (etapa E20).
Este dispositivo de ordenación 100, incluye un procesador 110, una memoria inactiva 120, una memoria activa 130, un reloj 140.
El dispositivo de ordenación 100 incluye igualmente unos medios de equipos y de software de comunicación 150 constituidos por ejemplo por una tarjeta de red conectada a la red de Internet 10 y por unas capas de software adaptadas para implementar el protocolo de comunicación TCP/IP.
Estos medios de comunicación 150 están principalmente adaptados para recibir un paquete p y para memorizarlo en una zona 131 de la memoria activa 130 y para leer un paquete p desde esta zona para enviarlo en la red de internet 10.
De manera conocida los diferentes equipos del dispositivo de ordenación 100 se conectan entre sí mediante un sistema de bus 160.
De acuerdo con la invención, la memoria inactiva 120 incluye el programa de ordenación PROG_ORD y la memoria activa 130 en una estructura de datos 170 para la implementación de este programa de ordenación PROG_ORD.
Esta estructura de datos 170 se representa en la forma de una tabla en la que cada línea corresponde a una cola de espera Queue_i, asociada a un flujo i. De manera más precisa, en esta tabla:
- la primera columna memoriza el índice i del flujo;
- la segunda columna memoriza el identificador del flujo i;
- la tercera columna memoriza la cuota Q_i de la cola Queue_i;
- la cuarta columna memoriza el contador de déficit DC_i de la cola Queue_i;
- la quinta columna permite gestionar el ciclo de los flujos de la lista de los flujos activos ActiveList memorizando el índice de la cola de espera que sigue a la cola Queue_i en esta lista. La gestión de estos punteros permite, de manera conocida, la inserción y la extracción de flujos en la lista de los flujos activos ActiveList; y
- la última columna da la dirección de memorización del paquete en cabeza de la cola de espera Queue_i en la memoria activa 130. De manera conocida, los paquetes siguientes en la cola de espera Queue_i son accesibles por medio de una lista de punteros encadenados.
En un modo particular de realización, la verificación de la actividad de un flujo i se efectúa comparando el identificador de un flujo con el contenido de la segunda columna de la estructura de datos 170, por ejemplo empleando una memoria CAM (Content Addressable Memory).
Se van a describir ahora, con referencia a la figura 5, un enrutador 50 de acuerdo con la invención en un modo particular de realización.
Este enrutador 50 incluye un dispositivo de ordenación 100 idéntico o similar al que se ha descrito anteriormente con referencia a la figura 4.
En el modo particular de realización descrito en este caso, este enrutador incluye además un módulo 24 de control de admisión de cada paquete p de los flujos entrantes (flecha continua de referencia 31).
Los paquetes p presentados en este módulo se determinan, por ejemplo, mediante funciones de encaminamiento clásicas que pueden incluir un reparto de carga, obtenido aplicando una función "hash" a un subconjunto de los campos del identificador de flujo.
En el ejemplo de realización descrito aquí, este módulo 24 de control de admisión efectúa dos niveles de control que pueden implementarse independientemente.
Para esto, el módulo 24 de control de admisión consulta y actualiza una lista 30 de los flujos llamados "protegidos", a saber los flujos, admitidos por el módulo 24 de control de admisión, activos (es decir un paquete de este flujo se ha identificado desde un intervalo de tiempo predeterminado) y decide, sobre la base de esta lista 30 de los flujos protegidos, si los paquetes de un flujo dado deben encaminarse directamente o no, es decir sin que sea necesario verificar las condiciones de admisión para encaminar el paquete hacia el dispositivo de ordenación.
Concretamente, esta lista de los flujos protegidos 30 es una lista de identificadores de flujos que indican para cada uno de entre ellos, la hora de llegada del último paquete.
En un modo particular de realización, cada lista se asocia a una partición del espacio de los identificadores, y esto con el fin de limitar las capacidades de cada lista y por tanto de garantizar la extensibilidad.
En este modo de realización, un flujo se borra de la lista de identificadores 30 cuando el tiempo transcurrido desde el último paquete recibido para este flujo, sobrepasa un umbral o intervalo de temporización. La longitud de este intervalo es un parámetro del sistema, por ejemplo del orden de algunos segundos.
En un modo particular de realización, esta lista 30 se dimensiona de manera que se limita la probabilidad de saturación, situación en la que un flujo debería ser puesto en la lista, mientras que esta ya está llena.
La consecuencia de una saturación de ese tipo sería que un flujo tardaría en adquirir el estatuto de flujo protegido. Estos paquetes serían encaminados sin embargo correctamente si el estado de congestión lo permite. De manera conocida, la probabilidad de saturación puede hacerse suficientemente reducida mediante un dimensionamiento adecuado.
Si el paquete pertenece a un flujo protegido, se encamina directamente (flecha 38) hacia el dispositivo de ordenación 100 que corresponde a la buena interfaz de salida, siendo actualizada la hora de llegada del último paquete de este flujo protegido en la lista de identificadores 30.
Si el flujo ya no está protegido, es necesario proceder a una toma de decisión de encaminamiento, siendo tomada esta decisión sobre la base de las condiciones de admisión recibidas del módulo de ordenación.
De acuerdo con la invención, otra función determina las condiciones de admisión a partir de medidas de congestión efectuadas por el dispositivo de ordenación 100. El suministro de esas condiciones se materializa por la flecha de referencia 36 en la figura 5.
En un modo particular de realización, se utilizan dos estimadores de congestión, la velocidad equitativa DE y la carga prioritaria CP:
- la velocidad equitativa es una medida de la velocidad que produciría un flujo de datos que tuviera, permanentemente, unos paquetes a emitir; y
- la carga prioritaria es la suma de la longitud de los paquetes prioritarios transmitidos en un cierto intervalo, dividida por la duración de este intervalo.
Efectuando unas medidas periódicas, se obtiene un contaje continuo del estado de carga del enlace controlado. El período de las medidas es típicamente diferente para los dos valores de velocidad equitativa (por ejemplo, del orden de la centena de milisegundos) y de carga prioritaria (por ejemplo, del orden de la decena de milisegundos).
En el modo particular de realización de la invención descrito en este caso, estos estimadores de congestión, CP y DE, se calculan mediante un proceso de medida distinto del procedimiento de ordenación descrito anteriormente a partir de los contadores de congestión PB y FB regularmente actualizados mediante el procedimiento de ordenación en las etapas F28 y F42.
Por otra parte, el proceso de medida (u otro módulo) incluye unos medios, no detallados aquí, adaptados para medir el tiempo total Silence_Time, durante el que la variable lógica Silence es igual al valor booleano VERDADERO, recordándose que esta variable Silence se actualiza al valor VERDADERO en la etapa F32 y al valor FALSO en la etapa E50.
Muestreando el contador de congestión PB a intervalos regulares, el proceso de medida deduce una estimación de la carga prioritaria, como la diferencia entre los valores PB medidos al comienzo y al final del intervalo de medida, dividida por la duración de este intervalo.
Sea:
- PB(T) el valor, en octetos, de PB en el instante T;
-(T1, T2) un intervalo de medida (en segundos); y
- C la velocidad del enlace (en bits/segundo), entonces, un estimador de carga prioritaria CP para este intervalo es:
CP(T1, T2) = (PB(T2) - PB(T1)) x 8 / (T2 - T1) / C.
De acuerdo con la invención, se supone, para estimar la velocidad equitativa DE, que el flujo ficticio 0 emite continuamente unos paquetes de tamaño fijo igual a Q_0 (cuota asociada al flujo ficticio 0).
En un periodo en el que la cola prioritaria está constantemente ocupada, el número de octetos que hubiera podido emitir el flujo ficticio 0 se deduce de la evolución del contador de congestión FB. Cuando la cola está vacía, el flujo ficticio 0 habría podido emitir, a la velocidad C del enlace.
Conjugando la sucesión de períodos de actividad y de silencio, se deduce una estimación de la velocidad equitativa DE que la manera siguiente, sea
- FB (T) el valor, en octetos, de FB en el instante T;
-(T1, T2) un intervalo de medida; y
- Silence_Time la duración total del silencio durante el intervalo (T1, T2), se obtiene:
DE (T1, T2) = max (Silence_Time x C/ (T2-T1), (FB(T2)-FB(T1)) x 8 / (T2-T1)).
El experto en la materia comprenderá fácilmente, que en el cálculo de la velocidad equitativa DE, el primer término prevalece, cuando la carga del enlace es reducida (porque el flujo ficticio 0 habría utilizado toda la capacidad restante disponible del enlace), prevaleciendo el segundo término en período de actividad, midiendo aproximadamente este término la velocidad producida mediante un flujo real que tiene siempre al menos un paquete en la cola de espera que se le asocia.
El módulo de ordenación 100 determina a continuación una condición de admisión a partir de los estimadores de congestión CP (carga prioritaria) y DE (velocidad equitativa). En la práctica, esta determinación puede efectuarse utilizando una función Admit(CP, DE) cuyo resultados es igual a 1 (respectivamente 0), cuando los paquetes p de nuevos flujos, que no tienen aún el estatus de flujo protegido, deben encaminarse (respectivamente rechazarse), suministrándose el resultado de esta función de admisión (fecha 36) por el módulo de ordenación 100 al módulo de encaminamiento 24.
Cuando las condiciones de admisión son favorables, el nuevo flujo cuyo paquete se encamina, se inserta en la lista de los flujos protegidos y adquiere de ese modo el estatus de flujo protegido.
En esta figura, la flecha continua 39 representa el rechazo de los primeros paquetes de los nuevos flujos por el módulo de encaminamiento 24.
En esta figura, la flecha continua 38 representa el encaminamiento de los paquetes de flujos protegidos hacia el módulo de ordenación 100.
Las condiciones aplicadas pueden depender del atributo particular del paquete incluyendo el valor del campo "clase de tráfico" en IPv6 o el campo ToS en IPv4 o las direcciones IP de origen y destino.
El control de admisión permite asegurar la transparencia de los flujos admitidos: conservación de la señal para los flujos en tiempo real, conservación de la velocidad para los flujos de datos.
De hecho, esta transparencia no se ofrece más que a los flujos cuya velocidad de pico (determinada por las limitaciones externas) permanece inferior a un cierto umbral.
Para elegir unos umbrales de admisión relacionados con la velocidad equitativa y con la carga prioritaria que permitan realizar un control de admisión permitiendo asegurar la transparencia de los flujos, el experto en la materia podrá referirse al documento FR2854296 del presente Solicitante anteriormente citado.
En la descripción que antecede, el proceso de medida y el procedimiento de ordenación son distintos entre sí. Como variante, el proceso de medida puede estar integrado en el procedimiento de ordenación.

Claims (10)

REIVINDICACIONES
1. Procedimiento de ordenación de paquetes que pertenecen a diferentes flujos (i), asociándose una cola de espera (Queue_i) a cada uno de dichos flujos, incluyendo este procedimiento, tras la recepción de un paquete (p):
- la determinación del flujo (i) al que pertenece el paquete (p);
- una etapa (E40, E54) de determinación de la prioridad de dicho paquete (p), siendo considerado un paquete como prioritario cuando:
• dicho paquete es el primer paquete de un flujo no activo, siendo considerado un flujo como no activo cuando no se haya recibido ningún paquete de este flujo en un ciclo actual o
• dicho paquete es uno de los paquetes de un flujo activo (i), siendo considerado un flujo como activo después de la recepción de un primer paquete que pertenece a este flujo y hasta que la cola de espera (Queue_i) asociada a este flujo esté vacía, en tanto que el número de octetos de este flujo (i) recibidos en el transcurso del ciclo actual sea inferior a una cuota (Q_i) asociada a un flujo (i) para este ciclo actual; y
- si dicho paquete (p) se determina como que es no prioritario, una etapa (E58) de puesta en cola de este paquete (p) en la cola de espera (Queue_i);
comprendiendo dicho procedimiento además la emisión de paquetes en el transcurso de dicho ciclo en el siguiente orden:
- las colas de espera se tratan cíclicamente, consistiendo el tratamiento de una cola de espera (Queue_i) en emitir unos paquetes contenidos en esta cola hasta el nivel de dicha cuota (Q_i) y
- los paquetes prioritarios se emiten con prioridad con relación a los paquetes contenidos en las colas de espera.
2. Procedimiento de ordenación según la reivindicación 1, caracterizado por que incluye, además, una etapa (F28, F42) de medida de contadores (FB, PB) de congestión destinados a ser tratados para el cálculo de estimadores (CP, DE) de congestión utilizados para un control de admisión.
3. Procedimiento de ordenación según la reivindicación 2, caracterizado por que dichos parámetros de congestión están constituidos por:
- un valor (DE) de velocidad equitativa, que es una medida de la velocidad que produciría un flujo de datos que tuviera siempre paquetes a emitir; y
- un valor (CP) de carga prioritaria, que corresponde al volumen de dichos paquetes prioritarios, transmitidos durante un intervalo de tiempo, dividido por la duración de este intervalo.
4. Dispositivo de ordenación de paquetes que pertenecen a diferentes flujos (i), asociándose una cola de espera (Queue_i) a cada uno de dichos flujos, incluyendo este dispositivo, tras la recepción de un paquete (p):
- unos medios para determinar el flujo (i) al que pertenece el paquete (P);
- unos medios de determinación de la prioridad de dicho paquete (p), siendo considerado un paquete como prioritario cuando:
• dicho paquete es el primer paquete de un flujo no activo, siendo considerado un flujo como no activo cuando no se haya recibido ningún paquete de este flujo en un ciclo actual o
• dicho paquete es uno de los paquetes de un flujo activo (i), siendo considerado un flujo como activo después de la recepción de un primer paquete que pertenece a este flujo y hasta que dicha cola de espera (Queue_i) asociada a este flujo esté vacía, en tanto que el número de octetos de este flujo (i) recibidos en el transcurso del ciclo actual sea inferior a una cuota (Q_i) asociada a un flujo (i) para este ciclo actual;
- unos medios de puesta en cola de este paquete (p) en la cola de espera (Queue_i) cuando dicho paquete p se determina no prioritario; y
- unos medios para emitir unos paquetes en el transcurso de dicho ciclo en el siguiente orden:
- las colas de espera se tratan cíclicamente, consistiendo el tratamiento de una cola de espera (Queue_i) en emitir unos paquetes contenidos en esta cola hasta el nivel de dicha cuota (Q_i) y
- los paquetes prioritarios se emiten con prioridad con relación a los paquetes contenidos en las colas de espera.
5. Dispositivo de ordenación según la reivindicación 4, caracterizado por que incluye además unos medios de medida de contadores (FB, PB) de congestión destinados a ser tratados para el cálculo de estimadores (CP, DE) de congestión utilizados para un control de admisión.
6. Dispositivo de ordenación según la reivindicación 5, caracterizado por que dichos parámetros de congestión están constituidos por:
- un valor (DE) de velocidad equitativa, que es una medida de la velocidad que produciría un flujo de datos que tuviera siempre paquetes a emitir; y
- un valor (CP) de carga prioritaria, que corresponde al volumen de dichos paquetes prioritarios, transmitidos durante un intervalo de tiempo, dividido por la duración de este intervalo.
7. Enrutador de paquetes caracterizado por que incluye un dispositivo de ordenación (100) según la reivindicación 5 o 6 y un módulo (24) de control de admisión de dichos paquetes en función de los parámetros de congestión medidos por dicho dispositivo de ordenación.
8. Enrutador según la reivindicación 7, caracterizado por que dicho módulo de admisión está adaptado además para encaminar directamente los paquetes que pertenecen a unos flujos llamados protegidos, a saber los flujos para los que se ha recibido al menos un paquete por dicho módulo de admisión después de un intervalo de tiempo predeterminado.
9. Programa informático almacenado en un soporte de informaciones, incluyendo dicho programa instrucciones que permiten la implementación de un procedimiento de ordenación según una cualquiera de las reivindicaciones 1 a 3, cuando este programa es cargado y ejecutado por un sistema informático.
10. Soporte de informaciones legible por un sistema informático, eventualmente total o parcialmente extraíble, principalmente un CD-ROM o soporte magnético, tal como un disco duro o disquete, o un soporte transmisible, tal como una señal eléctrica u óptica, caracterizado por que incluye instrucciones de un programa informático que permiten la implementación de un procedimiento de ordenación según una cualquiera de las reivindicaciones 1 a 3, cuando este programa es cargado y ejecutado por un sistema informático.
ES15150092T 2004-11-15 2005-11-15 Procedimiento y dispositivo de ordenación de paquetes para su enrutado en una red con determinación implícita de los paquetes a tratar con prioridad Active ES2799698T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0412063A FR2878106A1 (fr) 2004-11-15 2004-11-15 Procede et dispositif d'ordonnancement de paquets pour leur routage dans un reseau avec determination implicite des paquets a traiter en priorite

Publications (1)

Publication Number Publication Date
ES2799698T3 true ES2799698T3 (es) 2020-12-21

Family

ID=34951715

Family Applications (2)

Application Number Title Priority Date Filing Date
ES05819159.4T Active ES2533774T3 (es) 2004-11-15 2005-11-15 Procedimiento y dispositivo de ordenación de paquetes para su enrutamiento en una red con determinación implícita de los paquetes que procesar con prioridad
ES15150092T Active ES2799698T3 (es) 2004-11-15 2005-11-15 Procedimiento y dispositivo de ordenación de paquetes para su enrutado en una red con determinación implícita de los paquetes a tratar con prioridad

Family Applications Before (1)

Application Number Title Priority Date Filing Date
ES05819159.4T Active ES2533774T3 (es) 2004-11-15 2005-11-15 Procedimiento y dispositivo de ordenación de paquetes para su enrutamiento en una red con determinación implícita de los paquetes que procesar con prioridad

Country Status (8)

Country Link
US (1) US8311049B2 (es)
EP (2) EP2940960B1 (es)
JP (1) JP4762996B2 (es)
CN (1) CN101057481B (es)
ES (2) ES2533774T3 (es)
FR (1) FR2878106A1 (es)
PL (1) PL1813081T3 (es)
WO (1) WO2006051244A1 (es)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE301902T1 (de) * 2001-08-29 2005-08-15 Cit Alcatel Router
US8260286B2 (en) * 2006-10-30 2012-09-04 Nokia Corporation Method, apparatus and system for testing user equipment functionality
US8890505B2 (en) 2007-08-28 2014-11-18 Causam Energy, Inc. System and method for estimating and providing dispatchable operating reserve energy capacity through use of active load management
US8805552B2 (en) 2007-08-28 2014-08-12 Causam Energy, Inc. Method and apparatus for actively managing consumption of electric power over an electric power grid
US7715951B2 (en) 2007-08-28 2010-05-11 Consert, Inc. System and method for managing consumption of power supplied by an electric utility
US8996183B2 (en) 2007-08-28 2015-03-31 Consert Inc. System and method for estimating and providing dispatchable operating reserve energy capacity through use of active load management
US8527107B2 (en) 2007-08-28 2013-09-03 Consert Inc. Method and apparatus for effecting controlled restart of electrical servcie with a utility service area
US8806239B2 (en) 2007-08-28 2014-08-12 Causam Energy, Inc. System, method, and apparatus for actively managing consumption of electric power supplied by one or more electric power grid operators
US10295969B2 (en) 2007-08-28 2019-05-21 Causam Energy, Inc. System and method for generating and providing dispatchable operating reserve energy capacity through use of active load management
US8542685B2 (en) * 2007-08-28 2013-09-24 Consert, Inc. System and method for priority delivery of load management messages on IP-based networks
US9130402B2 (en) 2007-08-28 2015-09-08 Causam Energy, Inc. System and method for generating and providing dispatchable operating reserve energy capacity through use of active load management
US8700187B2 (en) 2007-08-28 2014-04-15 Consert Inc. Method and apparatus for actively managing consumption of electric power supplied by one or more electric utilities
US9177323B2 (en) 2007-08-28 2015-11-03 Causam Energy, Inc. Systems and methods for determining and utilizing customer energy profiles for load control for individual structures, devices, and aggregation of same
CN101971662B (zh) * 2008-01-30 2014-07-23 爱立信电话股份有限公司 用于tdd系统中移动终端的配置测量时隙的方法及设备
EP2187580B1 (en) * 2008-11-18 2013-01-16 Alcatel Lucent Method for scheduling packets of a plurality of flows and system for carrying out the method
WO2010129059A1 (en) 2009-05-08 2010-11-11 Consert Inc. System and method for estimating and providing dispatchable operating reserve energy capacity through use of active load management
MX2012004186A (es) 2009-10-09 2012-07-17 Consert Inc Aparatos y metodos para controlar comunicaciones a y de puntos de servicio de una compañía de electricidad.
KR101458245B1 (ko) * 2010-08-20 2014-11-07 한국전자통신연구원 무선 메쉬 네트워크에서 데이터 전송의 혼잡 상황을 통지/회피하는 방법 및 이를 위한 메쉬 노드
US9461471B2 (en) 2012-06-20 2016-10-04 Causam Energy, Inc System and methods for actively managing electric power over an electric power grid and providing revenue grade date usable for settlement
US9465398B2 (en) 2012-06-20 2016-10-11 Causam Energy, Inc. System and methods for actively managing electric power over an electric power grid
US9207698B2 (en) 2012-06-20 2015-12-08 Causam Energy, Inc. Method and apparatus for actively managing electric power over an electric power grid
US9563215B2 (en) 2012-07-14 2017-02-07 Causam Energy, Inc. Method and apparatus for actively managing electric power supply for an electric power grid
US10861112B2 (en) 2012-07-31 2020-12-08 Causam Energy, Inc. Systems and methods for advanced energy settlements, network-based messaging, and applications supporting the same on a blockchain platform
US8849715B2 (en) 2012-10-24 2014-09-30 Causam Energy, Inc. System, method, and apparatus for settlement for participation in an electric power grid
US10475138B2 (en) 2015-09-23 2019-11-12 Causam Energy, Inc. Systems and methods for advanced energy network
US9513648B2 (en) 2012-07-31 2016-12-06 Causam Energy, Inc. System, method, and apparatus for electric power grid and network management of grid elements
US8983669B2 (en) 2012-07-31 2015-03-17 Causam Energy, Inc. System, method, and data packets for messaging for electric power grid elements over a secure internet protocol network
WO2015076708A1 (en) * 2013-11-19 2015-05-28 Telefonaktiebolaget L M Ericsson (Publ) Method and first network node for managing a first ip path used by a connection
US9191377B2 (en) * 2013-11-27 2015-11-17 Architecture Technology Corporation Method for network communication past encryption devices
US9160553B2 (en) 2013-11-27 2015-10-13 Architecture Technology Corporation Adaptive multicast network communications
US9887974B2 (en) 2013-11-27 2018-02-06 Architecture Technology Corporation Method for network communication past encryption devices
EP3073680B1 (en) * 2015-03-23 2017-12-06 Alcatel Lucent Methods, queueing system, network element and network system for queueing and processing of packets
EP3136678B1 (en) 2015-08-27 2019-11-27 Tata Consultancy Services Limited System and method for real-time transfer of audio and/or video streams through an ethernet avb network
US10069748B2 (en) 2015-12-14 2018-09-04 Mellanox Technologies Tlv Ltd. Congestion estimation for multi-priority traffic
US10069701B2 (en) 2016-01-13 2018-09-04 Mellanox Technologies Tlv Ltd. Flexible allocation of packet buffers
US10250530B2 (en) 2016-03-08 2019-04-02 Mellanox Technologies Tlv Ltd. Flexible buffer allocation in a network switch
US10084716B2 (en) 2016-03-20 2018-09-25 Mellanox Technologies Tlv Ltd. Flexible application of congestion control measures
US10205683B2 (en) 2016-03-28 2019-02-12 Mellanox Technologies Tlv Ltd. Optimizing buffer allocation for network flow control
US10387074B2 (en) 2016-05-23 2019-08-20 Mellanox Technologies Tlv Ltd. Efficient use of buffer space in a network switch
US9985910B2 (en) * 2016-06-28 2018-05-29 Mellanox Technologies Tlv Ltd. Adaptive flow prioritization
US10659476B2 (en) 2016-09-12 2020-05-19 Architecture Technology Corporation Transparent bridge for monitoring crypto-partitioned wide-area network
US10389646B2 (en) 2017-02-15 2019-08-20 Mellanox Technologies Tlv Ltd. Evading congestion spreading for victim flows
US10645033B2 (en) 2017-03-27 2020-05-05 Mellanox Technologies Tlv Ltd. Buffer optimization in modular switches
US11005770B2 (en) 2019-06-16 2021-05-11 Mellanox Technologies Tlv Ltd. Listing congestion notification packet generation by switch
US10999221B2 (en) 2019-07-02 2021-05-04 Mellanox Technologies Tlv Ltd. Transaction based scheduling
US11470010B2 (en) 2020-02-06 2022-10-11 Mellanox Technologies, Ltd. Head-of-queue blocking for multiple lossless queues
US11463366B1 (en) 2020-09-22 2022-10-04 Architecture Technology Corporation Autonomous network optimization using network templates
US11973696B2 (en) 2022-01-31 2024-04-30 Mellanox Technologies, Ltd. Allocation of shared reserve memory to queues in a network device

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0646079A (ja) * 1992-07-22 1994-02-18 Toshiba Corp セル転送制御方式
US5812526A (en) * 1995-12-21 1998-09-22 Industrial Technology Research Institute Traffic control mechanism in ATM communications network
US6556571B1 (en) * 1999-05-25 2003-04-29 Nec Usa, Inc. Fast round robin priority port scheduler for high capacity ATM switches
ATE392758T1 (de) * 2000-01-05 2008-05-15 Mitsubishi Electric Inf Tech Verfahren und vorrichtung zur feststellung der paketübertragungspriorität zwischen mehreren datenströmen
US6574195B2 (en) * 2000-04-19 2003-06-03 Caspian Networks, Inc. Micro-flow management
US6810426B2 (en) * 2001-01-30 2004-10-26 Nomadix, Inc. Methods and systems providing fair queuing and priority scheduling to enhance quality of service in a network
US20040260829A1 (en) * 2001-04-13 2004-12-23 Husak David J. Manipulating data streams in data stream processors
KR100493084B1 (ko) * 2001-05-04 2005-06-03 삼성전자주식회사 이동통신시스템에서 멀티미디어 서비스를 위한 초기전송및 재전송 장치 및 방법
US7457297B2 (en) * 2001-11-16 2008-11-25 Enterasys Networks, Inc. Methods and apparatus for differentiated services over a packet-based network
JP2004166080A (ja) * 2002-11-14 2004-06-10 Matsushita Electric Ind Co Ltd パケットシェーパ、パケット中継装置
JP2004032157A (ja) * 2002-06-24 2004-01-29 Matsushita Electric Ind Co Ltd パケット伝送方法、トラフィックコンディショナ及び優先制御機構
JP2004297775A (ja) * 2003-03-12 2004-10-21 Matsushita Electric Ind Co Ltd パケット中継装置
FR2854296A1 (fr) 2003-04-24 2004-10-29 France Telecom Procede et dispositif pour differenciation implicite de la qualite de service dans un reseau
US7161916B2 (en) * 2003-08-20 2007-01-09 Qualcomm Incorporated Method and apparatus for uplink rate selection in the presence of multiple transport channels in a wireless communication system
US8406235B2 (en) * 2003-11-26 2013-03-26 Qualcomm Incorporated Quality of service scheduler for a wireless network

Also Published As

Publication number Publication date
JP4762996B2 (ja) 2011-08-31
EP2940960B1 (fr) 2020-04-01
CN101057481A (zh) 2007-10-17
EP1813081B1 (fr) 2015-01-07
FR2878106A1 (fr) 2006-05-19
PL1813081T3 (pl) 2015-06-30
US8311049B2 (en) 2012-11-13
CN101057481B (zh) 2011-05-25
US20070291644A1 (en) 2007-12-20
EP1813081A1 (fr) 2007-08-01
EP2940960A1 (fr) 2015-11-04
WO2006051244A1 (fr) 2006-05-18
ES2533774T3 (es) 2015-04-15
JP2008520141A (ja) 2008-06-12

Similar Documents

Publication Publication Date Title
ES2799698T3 (es) Procedimiento y dispositivo de ordenación de paquetes para su enrutado en una red con determinación implícita de los paquetes a tratar con prioridad
US6463068B1 (en) Router with class of service mapping
ES2282819T3 (es) Procedimiento y dispositivo de ordenamiento de paquetes en un enlace de red en funcion de la prioridad basada en el analisis del caudal de llegada de los flujos.
JP4605911B2 (ja) パケット送出装置
US7016366B2 (en) Packet switch that converts variable length packets to fixed length packets and uses fewer QOS categories in the input queues that in the outout queues
US8130648B2 (en) Hierarchical queue shaping
US8085668B2 (en) Timestamp metering and rollover protection in a network device
US6650644B1 (en) Method and apparatus for quality of service translation
US7457297B2 (en) Methods and apparatus for differentiated services over a packet-based network
CN106789721B (zh) 一种基于令牌桶的智能qos方法及系统
US6934250B1 (en) Method and apparatus for an output packet organizer
US6721796B1 (en) Hierarchical dynamic buffer management system and method
EP1694004A1 (en) Traffic policing with programmable registers
JP2002185501A (ja) ネットワーク間中継装置及び該中継装置における転送スケジューリング方法
US20050243829A1 (en) Traffic management architecture
US20060256723A1 (en) Scheduling incoming packet traffic on an output link of a network device associated with a data network
US7580355B2 (en) Method of performing weighted round-robin queue scheduling using a dynamic link list and structure for implementing same
JP6036310B2 (ja) パケット交換装置、伝送装置、及びパケットスケジューリング方法
JP2000196628A (ja) 輻輳管理方法及びシステム
Kortebi et al. Implicit service differentiation using deficit round robin
US8588070B2 (en) Method for scheduling packets of a plurality of flows and system for carrying out the method
US20050068798A1 (en) Committed access rate (CAR) system architecture
JP6127857B2 (ja) トラフィック制御装置
Baker et al. On queuing, marking, and dropping
Shreedhar et al. E cient fair queuing using de cit round robin