ES2491616T3 - Método para generar un vector de compartición de carga - Google Patents

Método para generar un vector de compartición de carga Download PDF

Info

Publication number
ES2491616T3
ES2491616T3 ES10715796.8T ES10715796T ES2491616T3 ES 2491616 T3 ES2491616 T3 ES 2491616T3 ES 10715796 T ES10715796 T ES 10715796T ES 2491616 T3 ES2491616 T3 ES 2491616T3
Authority
ES
Spain
Prior art keywords
communication
vector
load sharing
target distribution
target
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
ES10715796.8T
Other languages
English (en)
Inventor
Bernardin Drenski
Jan Scheurich
Jürgen SAUERMANN
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.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
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 Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Application granted granted Critical
Publication of ES2491616T3 publication Critical patent/ES2491616T3/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/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/44Distributed routing

Landscapes

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

Abstract

Método para generar un vector de compartición de carga para compartición de carga de una pluralidad de objetivos de comunicación en una red de comunicación, estando el método caracterizado por las etapas de: - proporcionar (101) un vector de distribución de objetivo que comprende un número de entradas por objetivo de comunicación, indicando cada entrada el objetivo de comunicación, apareciendo cada objetivo de comunicación en el vector de distribución de objetivo con una frecuencia relativa conforme a la capacidad del objetivo de comunicación, determinando el vector de distribución de objetivo un patrón de distribución de objetivo para la pluralidad de objetivos de comunicación, y - generar (103) el vector de compartición de carga en base a entradas activas del vector de distribución de objetivo, indicando cada una de las entradas activas un objetivo de comunicación que está disponible a efectos de compartición de carga en la red de comunicación.

Description

10
15
20
25
30
35
40
45
50
55
60
65
E10715796
11-08-2014
DESCRIPCIÓN
Método para generar un vector de compartición de carga
CAMPO TÉCNICO La presente invención pertenece a compartición de carga en redes de comunicación.
ANTECEDENTES En sistemas de comunicación modernos, la compartición de carga ha resultado tener un papel importante para distribuir eficientemente el tráfico en una red de comunicación entre múltiples rutas o hacia diferentes nodos que pueden manejar la misma aplicación con diferentes capacidades de procesamiento. Los planteamientos de compartición de carga dirigidos a la distribución de tráfico a diferentes nodos de red de recepción se basan en la suposición de que un nodo de comunicación está capacitado para distribuir tráfico entre los nodos de red de recepción según su capacidad de procesamiento, lo que da como resultado una compartición de carga de capacidad ponderada. Un ejemplo de planteamiento de compartición de carga de ese tipo es el proceso de puerta de enlace de señalización (SGP) de M3UA (Capa de Adaptación de Usuario de Nivel 3 de Parte de Transferencia de Mensaje) que distribuye tráfico a un servidor de aplicación (AS) de M3UA en un modo de compartición de carga. A la inversa, los planteamientos de compartición de carga que se basan en distribución de tráfico entre diferentes trayectorias, suponen que un nodo distribuidor de comunicación reenvía mensajes a un único nodo de red de recepción a través de un número de rutas o trayectorias de señalización alternativas que están respectivamente asociadas a su capacidad. Un ejemplo de planteamiento de compartición de carga de ese tipo puede ser el ASP de M3UA que conecta con un punto extremo de señalización (SEP) de un SS7 (Sistema de Señalización núm. 7) remoto a través de un número de SGPs de M3UA.
Según planteamientos convencionales de compartición de carga, los mensajes pertenecientes al mismo flujo de mensajes pueden ser enviados al mismo nodo de red receptora por la misma ruta. En el caso de protocolos de transporte orientados a conexión, tal como SUA o TCP, se puede conseguir el envío mediante conocimiento de conexión del nodo distribuidor de comunicación, lo que da como resultado una distribución de estado. En algunos casos, la identidad del nodo receptor de red que termina la conexión puede estar codificada en algún parámetro de protocolo de transporte de modo que el distribuidor pueda reenviar todos los mensajes posteriores directamente al nodo receptor de red apropiado sin tener que mantener un estado de conexión, lo que da como resultado una distribución de estado.
Para protocolos de transporte sin conexión, sin embargo, un flujo de mensajes puede no ser identificable unívocamente por medio de parámetros de protocolo directamente visibles para el nodo de distribución de comunicación, es decir, compartición de carga, tal como M3UA. En ese caso, puede ser necesaria la inspección por paquetes en el nodo de comunicación para determinar el flujo de mensajes y seleccionar la ruta o el nodo receptor apropiado.
En redes SS7 y SIGTRAN (M3UA), se puede usar el parámetro SLS (Selección de Enlace de Señalización) para flujos de mensajes de compartición de carga de diversas maneras. La SGP de M3UA puede, por ejemplo, compartir flujos de mensaje de compartición de carga entre los ASPs en un AS con el fin de asegurar que todos los mensajes del flujo son transmitidos al mismo ASP. El SEP, ASP, STP o SGP pueden ser flujos de mensajes de compartición de carga entre rutas/enlaces hacia un destino dado con el fin de mantener un suministro en secuencia hasta el destino. Para estos objetivos, la capa de aplicación puede proporcionar un valor de SLS con cada mensaje que vaya a ser enviado. Se puede usar el mismo valor de SLS para todos los mensajes pertenecientes a una transacción de señalización específica, por ejemplo una llamada en el caso de ISUP, o una transacción TCAP, que puede requerir un suministro en secuencia. El parámetro SLS puede estar incluido en la cabecera de MTP/M3UA y ser usado para compartición de carga en cada salto a lo largo de la ruta de señalización.
Sin embargo, de acuerdo por ejemplo con el estándar ITU-T (ETSI), la SLS es solamente un parámetro de cuatro bits, lo que significa que no puede ser usada para compartición de carga entre más de 16 ASPs o rutas. Puede presentarse otro problema con respecto al reenrutamiento. Cuando se activa en sí mismo un ASP sobre SGP, o si una ruta resulta estar disponible, entonces puede iniciarse un reenrutamiento controlado. Por lo tanto, el tráfico completo se almacena en una memoria intermedia de reenrutamiento controlado hasta que expire un temporizador. La redistribución de valores de SLS respecto a ASPs o rutas disponibles, lo que se conoce como cambio de patrón de compartición de carga, es un tema de implementación y puede que no mantenga eficientemente las ponderaciones de capacidad ni minimice la complejidad de reenrutamiento.
El documento US 6768718 ha direccionado este problema distribuyendo un vector de capacidad en el sistema adaptado para la carga real de recursos. El vector de capacidad tiene una entrada para cada recurso que muestre la capacidad disponible de ese recurso que un nodo puede usar en enrutamiento de tráfico. Las peticiones sobre una ruta son concedidas siempre que exista capacidad, la capacidad se reduce con cada petición concedida con la cantidad de tráfico de la petición. Si se deja sin capacidad se toma otro recurso en base a al menos un mecanismo de coste. Aunque D1 ha resuelto parte del problema, la carga no es compartida de igual modo puesto que una ruta
E10715796
11-08-2014
se planifica en primer lugar a su capacidad máxima y después se toma la siguiente ruta.
SUMARIO La invención se basa en el hallazgo de que se puede lograr un concepto eficiente de compartición de carga cuando,
5 por ejemplo, de forma preliminar, se determinan objetivos de comunicación que estén disponibles para compartición de carga en una red de comunicación. A este respecto, el término “objetivo de comunicación” puede referirse a una ruta de comunicación o a una trayectoria de comunicación o a un nodo de red.
Según un aspecto, la invención se refiere a un método para generar un vector de compartición de carga que indique
10 una pluralidad de objetivos de comunicación para compartición de carga en una red de comunicación. El método comprende proporcionar un vector de distribución de objetivo que comprende un primer número de entradas que indican un primer objetivo de comunicación, y que comprende un segundo número de entradas que indica un segundo objetivo de comunicación, y generar el vector de compartición de carga sobre la base de entradas activas del vector de distribución de objetivo, indicando las entradas activas el objetivo de comunicación del primer o del
15 segundo objetivo de comunicación que esté disponible para compartición de carga en la red de comunicación.
El vector de distribución de objetivo puede formar una base para generar el vector de compartición de carga. Según algunas implementaciones, las entradas del vector de compartición de carga pueden estar almacenadas en caché, lo que proporciona un vector de compartición de caché que constituye una realización del vector de compartición de
20 carga. En particular, el vector de compartición de carga puede formar en sí mismo una caché para los objetivos disponibles en el vector de distribución de objetivo. Con el fin de determinar si el objetivo de comunicación respectivo está disponible para compartición de carga en la red de comunicación, se pueden comunicar por ejemplo, mensajes de señalización.
25 El vector de distribución de objetivo y/o el vector de compartición de carga pueden ser proporcionados usando matrices de memoria, en las que las entradas respectivas pueden ser almacenadas como valores digitales en células de memoria respectivas de las matrices de memoria, por ejemplo en registros. De ese modo, el término “entrada” puede referirse a un contenido de una célula de memoria de una matriz de memoria que materializa el vector de distribución de objetivo o el vector de compartición de carga.
30 Según una realización, el vector de distribución de objetivo comprende una pluralidad de entradas, en donde la etapa de proporcionar el vector de distribución de objetivo comprende determinar el primer número de entradas y/o determinar el segundo número de entradas. A título de ejemplo, el número respectivo de entradas puede depender de una capacidad del objetivo de comunicación respectivo o indicar en alguna medida la capacidad respectiva del
35 objetivo de comunicación respectivo. Con el fin de normalizar la distribución de las entradas asociadas al objetivo de comunicación respectivo, las capacidades respectivas pueden estar normalizadas, por ejemplo en relación a una capacidad total de todos los objetivos de comunicación del vector de distribución de objetivo.
Según una realización, una relación entre el primer número de entradas y el segundo número de entradas
40 corresponde a una relación de una capacidad del primer objetivo de comunicación y una capacidad del segundo objetivo de comunicación. De ese modo, el número de entradas asociado, por ejemplo, al primer objetivo de comunicación representa directamente la capacidad del primer objetivo de comunicación en el vector de distribución de objetivo. Lo mismo se aplica al segundo objetivo de comunicación.
45 Según una realización, la etapa de proporcionar el vector de distribución de objetivo comprende determinar el primer número de entradas y el segundo número de entradas en base a la fórmula siguiente:
wi·M ---------, 50 wtot
en donde wi indica la capacidad del iº objetivo de comunicación, en donde M indica un número total de entradas en el vector de distribución de objetivo, y en donde wtot indica la capacidad de todos los objetivos de comunicación indicados en el vector de distribución de objetivo.
55 Según una realización, la etapa de proporcionar el vector de distribución de objetivo comprende reordenar aleatoriamente las entradas en el vector de distribución de objetivo. Reordenando aleatoriamente las entradas en el vector de distribución de objetivo, se puede conseguir un desagrupamiento de entradas posiblemente agrupadas asociadas al mismo objetivo de comunicación. De ese modo, la reordenación puede ser llevada a cabo a modo de
60 entrada. Alternativamente, las entradas pueden ser insertadas aleatoriamente en el vector de distribución de objetivo, para obtener un vector de distribución de objetivo aleatorizado.
Según una realización, la etapa de generar el vector de compartición de carga comprende explorar el vector de distribución de objetivo en cuanto a entradas asociadas a objetivos de comunicación que estén disponibles para
65 compartición de carga. Con el fin de explorar el vector de distribución de objetivo, se puede realizar una búsqueda
10
15
20
25
30
35
40
45
50
55
60
65
E10715796
11-08-2014
en cuanto a entradas asociadas a objetivos de comunicación que estén disponibles para compartición de nodo.
Según una realización, la etapa de generar el vector de compartición de carga comprende copiar las entradas que indican objetivos de comunicación que están disponibles para compartición de carga desde el vector de distribución de objetivo al vector de compartición de carga. Con el fin de copiar las entradas que indican los objetivos de comunicación disponibles, se puede realizar una operación de escritura con respecto a células de memoria de una matriz de memoria.
Según una realización, la etapa de generar el vector de compartición de carga comprende comparar en forma de entrada las entradas del vector de compartición de carga con entradas del vector de distribución de objetivo, y actualizar entradas del vector de compartición de carga con entradas del vector de distribución de objetivo que estén asociadas a objetivos de comunicación que estén disponibles para compartición de carga para obtener las entradas activas en el vector de compartición de carga. A este respecto se puede realizar, por ejemplo, la reordenación aleatoria preliminar de entradas del vector de distribución de objetivo a efectos de evitar las comparaciones posteriores de entradas asociadas al mismo objetivo de comunicación.
Según una realización, la etapa de generar el vector de compartición de carga comprende comparar una entrada del vector de compartición de carga con una entrada del vector de distribución de objetivo, si la entrada del vector de distribución de objetivo indica un objetivo de comunicación que esté disponible para compartición de carga, y si la entrada del vector de distribución de objetivo difiere de la entrada del vector de compartición de carga, sustituir la entrada del vector de compartición de carga por la entrada del vector de distribución de objetivo para obtener una entrada activa en el vector de compartición de carga, y/o si la entrada del vector de distribución de objetivo indica un objetivo de comunicación que no esté disponible para la compartición de carga, comparar la entrada del vector de compartición de carga con una entrada adicional, en particular con una entrada subsiguiente, del vector de distribución de objetivo. De ese modo, las entradas posteriores del vector de distribución de objetivo pueden ser exploradas, por ejemplo, con ajuste para el primer objetivo disponible y la copia de éste en la entrada de vector de compartición de carga actual.
Según un aspecto adicional, la invención se refiere a un método para compartición de carga en una red de comunicación. El método comprende determinar un objetivo de comunicación a partir del vector de compartición de carga generado conforme al método para generar el vector de compartición de carga, y reenviar un mensaje de comunicación hacia el objetivo de comunicación determinado.
Según una realización, la etapa de determinación comprende determinar un valor de índice en base al mensaje de comunicación, en particular sobre la base de una cabecera del mensaje de comunicación, y seleccionar la entrada activa del vector de compartición de carga usando el valor de índice para determinar el objetivo de comunicación. Alternativamente, el valor de índice puede ser proporcionado mediante un contra-mensaje que cuente por ejemplo de 1 a M con una envolvente opcional. A título de ejemplo, en particular en el caso de suministro de mensajes en secuencia en un flujo de mensajes, el valor de índice puede ser con preferencia el mismo para los mensajes de un flujo dado. Según una realización, la etapa de determinar el valor de índice comprende calcular un valor hash a partir de al menos una entrada de cabecera de mensaje de la cabecera del mensaje de comunicación.
Según una realización, el objetivo de comunicación es una ruta de comunicación o un nodo de red.
Según un aspecto adicional, la invención se refiere a un nodo de comunicación para generar un vector de compartición de carga que comprende una pluralidad de objetivos de comunicación para compartición de carga en una red de comunicación. El nodo de comunicación comprende un procesador que está configurado para proporcionar un vector de distribución de objetivo que comprende un primer número de entradas asignadas a un primer objetivo de comunicación, y que comprende un segundo número de entradas asignadas a un segundo objetivo de comunicación, y para generar el vector de compartición de carga sobre la base de entradas activas del vector de distribución de objetivo, indicando las entradas activas el objetivo de comunicación del primer o segundo objetivo de comunicación que esté disponible a efectos de compartición de carga en la red de comunicación.
Según una realización, el procesador está configurado además para determinar un objetivo de comunicación a partir del vector de compartición de carga, y en donde el nodo de comunicación comprende además un redireccionador para reenviar el mensaje de comunicación hacia el objetivo de comunicación determinado.
Según una realización, el procesador está configurado para determinar un valor de índice sobre la base del mensaje de comunicación, en particular sobre la base de una cabecera del mensaje de comunicación, y para seleccionar la entrada activa a partir del vector de compartición de carga usando el valor de índice para determinar el objetivo de comunicación.
El nodo de comunicación puede ser uno de entre: un enrutador, una Puerta de Enlace de Señalización (SGW), una Puerta de Enlace de Medios (MGW), una Puerta de Enlace de Red de Datos por Paquetes (PGW), una MME (Entidad de Gestión de Movilidad), un MSC (Centro de Conmutación Móvil), una SGSN (Entidad de Soporte de
E10715796
11-08-2014
5
10
15
20
25
30
35
40
45
50
55
60
65
GPRS de Servicio), o una MGCF (Función de Control de Puerta de Enlace de Medios), o un Punto de Transferencia de Señalización (STP), o un Punto de Transferencia de IP de Señalización IP-STP.
BREVE DESCRIPCIÓN DE LOS DIBUJOS Se pueden describir realizaciones adicionales con referencia a las Figuras que siguen, en las que:
La Figura 1 muestra un diagrama de un método para generar un vector de compartición de carga según una realización; La Figura 2 muestra la etapa de generación del vector de compartición de carga según una realización; La Figura 3 muestra un diagrama de un método para compartición de carga según una realización; La Figura 4 muestra un diagrama de bloques de un nodo de comunicación según una realización; La Figura 5 muestra un sistema de comunicación según una realización; La Figura 6 muestra un sistema de comunicación según una realización; La Figura 7 muestra un vector de distribución de objetivo según una realización; La Figura 8 muestra la generación del vector de compartición de carga sobre la base del vector de distribución de objetivo de acuerdo con una realización; Las Figuras 9a a 9g muestran la generación del vector de compartición de carga sobre la base del vector de distribución de objetivo según algunas realizaciones, y La Figura 10 muestra un planteamiento de compartición de carga según una realización.
DESCRIPCIÓN DETALLADA La Figura 1 muestra un diagrama de un método 100 para generar un vector de compartición de carga que indica una pluralidad de objetivos de comunicación para compartición de carga en una red de comunicación. El método puede comprender proporcionar 101 un vector de distribución de objetivo que comprende un primer número de entradas que indican un primer objetivo de comunicación, y que comprende un segundo número de entradas que indican un segundo objetivo de comunicación, y generar 103 el vector de compartición de carga sobre la base de entradas activas del vector de distribución de objetivo, indicando las entradas activas el objetivo de comunicación del primer o del segundo objetivo de comunicación que esté disponible para compartición de carga en la red de comunicación.
La Figura 2 muestra un diagrama que ilustra la etapa de generar 103 el vector de compartición de carga sobre la base de entradas activas del vector de distribución de objetivo. La etapa de generar 103 el vector de compartición de carga puede comprender comparar 201 una entrada del vector de compartición de carga con una entrada del vector de distribución de objetivo, si la entrada del vector de distribución de objetivo indica un objetivo de comunicación que esté disponible para compartición de carga, etapa 203, y si la entrada del vector de distribución de objetivo difiere de la entrada del vector de compartición de carga, etapa 205, reemplazar 207 la entrada del vector de compartición de carga por la entrada del vector de distribución de objetivo para obtener una entrada activa en el vector de compartición de carga, o si la entrada del vector de distribución de objetivo indica un objetivo de comunicación que no esté disponible para compartición de carga, comparar 201 la entrada del vector de compartición de carga con una entrada adicional, en particular con una entrada subsiguiente, del vector de distribución de objetivo. Otras realizaciones que se refieren a la generación del vector de compartición de carga pueden ser descritas con referencia a la Figura 9.
La Figura 3 muestra un diagrama de un método 300 para compartición de carga en una red de comunicación. El método comprende determinar 301 un objetivo de comunicación a partir del vector de compartición de carga generado de acuerdo con el método para generar el vector de compartición de carga según se muestra, por ejemplo, en las Figuras 1 y 2, y reenviar 303 un mensaje de comunicación hacia el objetivo de comunicación determinado. El método puede ser ejecutado, por ejemplo, mediante un enrutador o mediante cualquier nodo de red que esté capacitado para compartir carga en una red de comunicación. Otras realizaciones en relación con la compartición de carga pueden ser descritas con referencia a la Figura 10.
La Figura 4 muestra un diagrama de bloques de un nodo 400 de comunicación para generar un vector de compartición de carga conforme a los principios descritos en la presente memoria. La comunicación 400 comprende una pluralidad de objetivos de comunicación para compartición de carga en una red de comunicación, comprendiendo el nodo de comunicación un procesador 401 que está configurado para proporcionar 403 un vector de distribución de objetivo que comprende un primer número de entradas asignadas a un primer objetivo de comunicación, y que comprende un segundo número de entradas asignadas a un segundo objetivo de comunicación, y para generar 405 el vector de compartición de carga sobre la base de entradas activas del vector de distribución de objetivo, indicando las entradas activas el objetivo de comunicación del primero o del segundo objetivo de comunicación que esté disponible para compartición de carga en la red de comunicación. El nodo 400 de comunicación puede comprender además un redireccionador 407, por ejemplo un transmisor, para reenviar, por ejemplo transmitir, el mensaje de comunicación hacia el objetivo de comunicación determinado.
La Figura 5 muestra un sistema de comunicación que comprende un nodo D de comunicación que está capacitado para compartir tráfico para una aplicación distribuida sobre un número de nodos N1, N2, N3 y N4 de una red, que pueden tener diferentes capacidades. El tráfico puede ser distribuido hacia los nodos N1 a N4 de red a través de
10
15
20
25
30
35
40
45
50
55
60
65
E10715796
11-08-2014
trayectorias 501, 503, 505 y 507 de comunicación. El nodo D de comunicación puede estar configurado, por ejemplo, para determinar el vector de compartición de carga según los principios descritos en la presente memoria, y para distribuir el tráfico con mensajes de comunicación según corresponda. Con el fin de determinar el vector de compartición de carga, el nodo D de comunicación, que constituye una realización de un nodo de distribución o de comunicación de red, puede generar un vector de distribución de objetivo que comprende entradas asociadas a los nodos N1 a N4 de red, que constituyen realizaciones de objetivos de comunicación. El número de entradas asociadas a cada uno de los nodos N1 a N4 de red puede ser determinado mediante la capacidad respectiva y puede ser diferente debido a diferentes capacidades de los nodos N1 a N4 de red. De ese modo, el vector de distribución de objetivo puede proporcionar información que indique nodos de red que pueden llevar a cabo la aplicación deseada sin indicar la disponibilidad del nodo de red respectivo. En base al vector de distribución de objetivo, el nodo D de comunicación puede generar el vector de compartición de carga indicando aquellos de los nodos N1 a N4 de red que estén disponibles para realizar la aplicación deseada. Con ello, se puede determinar la disponibilidad de los nodos N1 a N4 de red en cuanto a compartición de carga.
La Figura 6 muestra una realización de un sistema de comunicación con un nodo D de comunicación capacitado para compartición de carga de tráfico respecto a un nodo N de red sobre un número de rutas R1, R2, R3 y R4 de señalización con diferentes capacidades, según se indica en la Figura 6. El nodo D de comunicación puede corresponder o no con el nodo D de comunicación de la Figura 5. Para compartición de carga, el nodo D de comunicación puede determinar el vector de compartición de carga que tenga rutas de señalización activa de objetivos de comunicación conforme a los principios descritos en la presente memoria. A este respecto, las rutas de señalización activa pueden ser determinadas mediante enlaces de comunicación hacia el nodo N de red que esté disponible para transmisión de señal. La información de disponibilidad en relación con las rutas R1, R2, R3 y R4 de señalización puede originarse a partir de un enrutador o puede ser determinada sobre la base de una tabla de enrutamiento.
Los nodos D de comunicación representados en las Figuras 5 y 6 pueden ser, por ejemplo, nodos SGWs (Puerta de Enlace de Señalización) o SGP (Proceso de Señalización), o MSCs (MSC: Centro de Conmutación Móvil), o MSC.S BCs. Correspondientemente, los nodos N1 a N4 y N de red pueden ser nodos SPX (SPX: Señalización Proxy), los cuales pueden equilibrar, conforme a la realización de la Figura 5, el tráfico de SS7 y M3UA de entrada sobre, por ejemplo, 64 Blades MSC con capacidades de procesamiento diferentes. Los nodos D de red pueden ser además MSCs o SEPs (Punto Final de Señalización).
A título de ejemplo, en el caso del nodo MSC-S Blade Cluster, el nodo D de compartición de carga de la Figura 5 puede ser el SPX de, por ejemplo, dos SPXs, que corren en paralelo usando el mismo algoritmo de compartición de carga, y los nodos N1 a N64 pueden ser Blades MSC.
Con referencia a la Figura 6, conforme a algunas realizaciones, cualquier nodo SGW basado en AXE, por ejemplo incluyendo un SPX, puede ser configurado para tráfico de compartición de carga a un destino sobre, por ejemplo, hasta 64 rutas.
Según las realizaciones mostradas en las Figuras 5 y 6, por ejemplo, se puede realizar una compartición de carga ponderada por capacidad. El nodo D de comunicación puede distribuir mensajes salientes a los nodos N1, ..., Nm de red de recepción o a través de rutas R1, ..., Rm según su capacidad. La capacidad de los objetivos de comunicación tales como los nodos de red de recepción o las rutas de señalización, pueden sin embargo variar. No obstante, es también posible soportar objetivos de comunicación cuya capacidad difiera en al menos un orden de magnitud. El número m de objetivos de comunicación puede ser grande, por ejemplo hasta unos cientos de objetivos de comunicación. En caso de que algunos objetivos de comunicación no estén disponibles para compartición de carga, el tráfico puede ser aún compartido en carga conforme a las capacidades de los restantes objetivos de comunicación disponibles. Además, se puede conseguir una compartición de carga coherente de flujos de mensajes conforme a algunas realizaciones. Con referencia a las Figuras 5 y 6, el nodo D de comunicación puede estar también capacitado para reenviar todos los mensajes pertenecientes a un flujo de mensajes específico al mismo objetivo de comunicación.
Con el fin de describir el planteamiento de compartición de carga con detalle, se pueden asumir como ejemplos las siguientes suposiciones: el número de flujos de mensajes para ser compartidos en carga puede ser grande en comparación con un número m de objetivos de comunicación. Éste puede ser el caso cuando los flujos de mensajes tales como las llamadas o las transacciones, se crean dinámicamente y son de corta duración.
Según algunas realizaciones, es posible discriminar un gran número de flujos de mensajes en base a inspección de la cabecera de protocolo de transporte y, por ejemplo, unos pocos parámetros adicionales de protocolo de usuario específicos de la aplicación que pueden ser extraídos en el nodo de comunicación que realiza la compartición de carga.
De ese modo, puede existir una función h específica de la aplicación que mapee, por ejemplo, la cabecera de mensaje extendida en cuanto a los números enteros {1, ..., N}, donde h(M1) = h(M2) para cualquier par de mensajes
10
15
20
25
30
35
40
45
50
55
60
65
E10715796
11-08-2014
pertenecientes al mismo flujo de mensajes, y N >> m. A título de ejemplo, la función h específica de la aplicación puede mapear al menos un parámetro de la cabecera de mensaje en cuanto a uno o más valores hash. Además, el valor de h puede ser único o no, para cada flujo de mensajes.
Según algunas realizaciones, por ejemplo puede verse afectada una porción mínima de tráfico en caso de reenrutamiento. En el caso de un fallo temporal de un objetivo de comunicación, los mensajes que puedan haber sido distribuidos al objetivo de comunicación no disponible pueden ser reenrutados a otros objetivos de comunicación disponibles. El propósito del reenrutamiento puede ser por tanto múltiple. En particular, cada nuevo flujo de mensajes puede ser siempre manejado. Con referencia a la Figura 5, con el fin de permitir que el nuevo objetivo de comunicación maneje mensajes posteriores de un flujo de mensajes existente, por ejemplo el procesamiento del flujo de mensajes, si es factible, puede continuar, o el primero de tales mensajes puede ser rechazado para abortar el flujo de mensajes hasta el interlocutor remoto, lo que puede acelerar un proceso de recuperación. Además, según algunas realizaciones, solamente los flujos de mensajes afectados pueden ser sometidos a reenrutamiento puesto que el reenrutamiento de otros flujos de mensajes puede impactar negativamente en más tráfico del necesario dado que los nuevos receptores puede que típicamente no manejen los flujos de mensajes entrantes con éxito.
Con referencia a la Figura 6, se puede asegurar que los mensajes son reenviados al nodo N de destino siempre que al menos una ruta se encuentre disponible. Durante el reenrutamiento, por ejemplo, se puede asegurar con preferencia el suministro de mensajes en secuencia en un flujo de mensajes. Los mensajes enrutados según el nuevo vector de compartición de carga puede que no sean suministrados con anterioridad a los mensajes reenviados con anterioridad al reenrutamiento.
Adicionalmente, se puede alcanzar redundancia de nodo de comunicación. También puede ser posible desplegar dos o más nodos redundantes de compartición de carga dado que la red corriente arriba del lado izquierdo de los nodos D, según se ha mostrado en las Figuras 5 y 6, puede reenrutar mensajes hasta un nodo D de comunicación redundante, en donde los flujos de mensajes entrantes puede que no se vean afectados cuando un nodo D de comunicación falla. Esto puede implicar que nodos de compartición de carga redundantes estén capacitados para compartir carga de los flujos de mensajes de la misma manera en todo momento de modo que, en caso de fallo de uno de los nodos D de comunicación, el (los) nodo(s) redundante(s) puede(n) perfectamente hacerse cargo de la distribución sin cambiar el patrón de distribución definido, por ejemplo, en el vector de distribución de carga respectivo.
En lo que sigue, los objetivos de comunicación se indican mediante (T1, ..., Tm), los nodos de red de recepción se indican mediante (N1, ..., Nm), y las rutas se indican mediante (R1, ..., Rm). Además, para una aplicación distribuida, por ejemplo el AS, según se muestra por ejemplo en la Figura 5, o para un nodo N de comunicación de destino según se muestra en la Figura 6, se han desplegado dos vectores:
El vector de distribución de objetivo (TDV) comprende entradas que determinan un patrón de distribución para los objetivos de comunicación configurados. Cada objetivo de comunicación aparece en el TDV con una frecuencia relativa según su capacidad. El vector de distribución de carga (LDV) puede ser derivado del vector de distribución de objetivo y puede tener en cuenta la disponibilidad de objetivos de comunicación. El vector de distribución de carga puede ser usado para compartición de carga.
Además, se puede introducir una función h de conversión para mapear, por ejemplo, la información de cabecera extendida de cada mensaje recibido respecto a un índice en el vector de distribución de carga. Cuando se requiere suministro en secuencia, h puede mapear todos los mensajes de un flujo de mensajes respecto al mismo índice. El mensaje puede ser reenviado al objetivo de comunicación señalado como la entrada del vector de compartición de carga.
Cada objetivo de comunicación T1, ..., Tm puede estar asociado a un peso íntegro wi de capacidad. El peso de capacidad es una propiedad que se configura por objetivo de comunicación. Alternativamente, se puede determinar de forma automática, por ejemplo mediante mediciones, o ser proporcionado por una entidad externa en tiempo de ejecución. Además, cada objetivo de comunicación T1, ..., Tm puede estar asociado a un peso íntegro wi de capacidad. El peso de capacidad puede ser una propiedad que puede ser configurada por objetivo de comunicación. Alternativamente, puede ser determinado de forma automática, por ejemplo mediante mediciones, o proporcionado por una entidad externa en tiempo de ejecución. Cada objetivo de comunicación, en su estado disponible, puede estar disponible para compartición de carga, y en su estado no disponible, no estará disponible para compartición de carga.
A título de ejemplo, la Figura 7 muestra una realización de un vector de distribución de objetivo que tiene, por ejemplo, 64 grupos de entrada asociados a, por ejemplo, 64 objetivos de comunicación. A título de ejemplo, el vector de distribución de objetivo puede comprender las entradas 701, 703 y 705 asociadas a un primer objetivo de comunicación, las entradas 707, 709 y 711 asociadas a un segundo objetivo de comunicación, y las entradas 713, 715 y 717 asociadas a 64 objetivos de comunicación. En general, el vector de distribución de objetivo puede ser un
E10715796
11-08-2014
vector con M elementos, por ejemplo M = 1024. El vector de distribución de objetivo puede ser un vector con M elementos (por ejemplo, M = 1024) en el que cada objetivo de comunicación Ti ocurre un número aproximado de M*wj/wtot veces, donde wj es la capacidad del objetivo de comunicación Ti y wtot es la suma de la capacidad de todos los objetivos de comunicación.
5
Cada objetivo de comunicación con capacidad wj > 0, puede tener al menos una entrada en el TDV. Por ejemplo, si existen 64 objetivos de comunicación con un peso total wtot = 128 y M = 1024 es un número entero múltiplo de wtot, cada objetivo de comunicación Ti puede tener wi*K entradas, donde K es igual a:
10 M K = -----= 8 wtot
A título de ejemplo, si la capacidad w0 para el objetivo de comunicación T0 es igual a 3, entonces T0 puede tener 24 15 entradas en el vector TDV.
En caso de que M no sea un múltiplo entero de wtot, la asignación de entradas de TDV a objetivos de comunicación puede ser realizada, por ejemplo, conforme a lo que se conoce como método del mayor resto, usando la cuota de Hare wtot/M. Con el fin de garantizar al menos una entrada por objetivo de comunicación, todos los objetivos de
20 comunicación con número entero cero y resto distinto de cero pueden recibir una entrada y pueden ser retirados de la lista, antes de que las entradas restantes sean asignadas a otros objetivos de comunicación según sea el tamaño de su resto.
Si no existen entradas restantes suficientes para proporcionar al menos una entrada por objetivo de comunicación,
25 se puede asignar a los objetivos de comunicación con los pesos más pequeños una entrada a cada uno y el método del mayor resto puede ser aplicado para los restantes objetivos de comunicación solamente.
A título de ejemplo, la Figura 7 ilustra la frecuencia de objetivos de comunicación en el TDV. Sin embargo, las entradas de objetivos de comunicación pueden aparecer en orden aleatorio en el TDV. Esta propiedad puede
30 permitir el mantenimiento de la propiedad de compartición de carga sopesada por capacidad en el reenrutamiento según se describe en lo que sigue. A efectos de aleatorización del TDV, se puede usar cualquier forma adecuada de generador de número seudo-aleatorio.
Según algunas realizaciones, se puede insertar un objetivo de comunicación en el TDV cuando se define, y puede
35 ser retirado del TDV cuando se anule la definición. Estas dos acciones y cualquier cambio de capacidad para un objetivo de comunicación definido pueden causar un reenrutamiento puesto que el TDV y el LDV tienen que ser recalculados.
Si se necesita un suministro en secuencia según, por ejemplo, la realización de la Figura 6, entonces un recálculo 40 del TDV puede conducir a un almacenamiento en memoria intermedia del tráfico completo en el destino.
Según algunas realizaciones, el LDV puede ser el vector de objetivos de comunicación con el mismo número de entradas que el TDV. Las entradas del LDV se derivan del TDV teniendo en cuenta la disponibilidad de objetivos de comunicación. En cualquier momento, el LDV solamente contiene objetivos de comunicación que estén disponibles.
45
A título de ejemplo, cada entrada en el LDV puede tener los siguientes estados:
-Reenvío, cuando el tráfico que incluye mensajes de comunicación está siendo reenviado al objetivo de comunicación, y
50 -Almacenamiento en memoria intermedia, si el tráfico que incluye los mensajes de comunicación se almacena en memoria intermedia temporalmente.
El LDV puede ser actualizado cada vez que cambia la disponibilidad de un objetivo de comunicación o cuando se recalcula el TDV. Siempre que cambia una entrada de LDV, su objetivo de comunicación puede entrar en el estado 55 de almacenamiento en memoria intermedia para asegurar un suministro en secuencia de mensajes en un flujo de mensajes. Un temporizador de reenrutamiento por entrada de LDV puede ser puesto en marcha para controlar el procedimiento de reenrutamiento. Cada entrada de LDV puede mantener su propia memoria intermedia FIFO en el estado de almacenamiento en memoria intermedia. Según, por ejemplo, la realización de la Figura 5, en caso de que no exista ningún problema con el suministro de mensajes fuera de secuencia en un flujo de mensajes en
60 reenrutamiento, puede que no se necesite la etapa de almacenamiento en memoria intermedia y puede ser omitida.
Con el fin de generar un LDV nuevo o actualizado, por ejemplo, siempre que haya sido calculado un nuevo vector de distribución de objetivo, se puede llevar a cabo el siguiente esquema:
65 Para cada índice j comprendido en la gama de 1, ..., M:
E10715796
11-08-2014
5
10
15
20
25
30
35
40
45
50
55
60
65
Si el objetivo de comunicación de TDV[j] está disponible, almacenar el objetivo de comunicación en LDV[j].
Si el objetivo de comunicación de TDV[j] no está disponible, explorar el TDV linealmente en cuanto a la siguiente entrada cuyo objetivo de comunicación esté en estado disponible. Si la exploración alcanza el fin del TDV, continuar por el principio. Almacenar el objetivo de comunicación encontrado en el LDV[j].
La Figura 8 muestra el planteamiento descrito en lo que antecede sobre la base de un vector 801 de distribución de objetivo y un vector 803 de compartición de carga, en donde el indicador A señala que un objetivo de comunicación se encuentra disponible, el indicador B señala que un objetivo de comunicación no está disponible, y el indicador C señala que un objetivo de comunicación está disponible. El vector de distribución de objetivo puede tener una pluralidad de entradas entre las cuales, por ejemplo, la entrada 10 puede no estar disponible, la entrada 11 puede estar disponible, la entrada 32 puede estar disponible, la entrada 33 puede no estar disponible, la entrada 34 puede estar disponible, la entrada 50 puede no estar disponible, y la entrada 51 puede estar disponible. Los indicadores A, B y C pueden formar parte o no del vector 801 de distribución de objetivo.
Con el fin de generar el vector de compartición de carga en base al vector de distribución de objetivo, el vector de distribución de objetivo puede ser examinado en cuanto a entradas asociadas a objetivos de distribución disponibles. De ese modo, solamente se almacenan en el vector 803 de compartición de carga las entradas del vector de distribución de objetivo que estén asociadas a objetivos de comunicación disponibles. A título de ejemplo, empezando por la entrada 32, la entrada 33 del vector 801 de distribución de objetivo no está disponible. De ese modo, se investiga el vector 801 de distribución de objetivo respecto a su siguiente entrada activa asociada a un objetivo de comunicación disponible de modo que, a título de ejemplo, la entrada 34 del vector 801 de distribución de objetivo sea copiada en el índice 33 del vector de compartición de carga. Este planteamiento iterativo asegura que el vector de compartición de carga resultante tiene solamente entradas activas que forman, por ejemplo, un subconjunto de entradas del vector de distribución de objetivo. Sin embargo, si no están disponibles todos los objetivos de comunicación, entonces se puede crear así un vector de compartición de carga válido de modo que la aplicación o el destino pueda ser considerado como no disponible, lo que da como resultado que se pueda caer el tráfico.
Cuando un objetivo de comunicación cambia su estado al estado de no disponible, entonces pueden verse afectadas todas las entradas de LDV que apuntan a este objetivo de comunicación y pueden ser cambiadas a otros objetivos de comunicación disponibles como sigue:
-Cambiar el estado de una entrada LDV[j] afectada al estado de almacenamiento en memoria intermedia y poner en marcha el temporizador de reenrutamiento para la entrada de LDV; -Si el estado ya estaba siendo almacenado en memoria intermedia, puede que no se realice ninguna acción; -Explorar el TDV linealmente a partir de la entrada j+1 hacia adelante respecto al primer objetivo de comunicación que esté en estado disponible. Si la exploración alcanza el final del TDV, continuar por el principio. Almacenar el objetivo de comunicación disponible encontrado en LDV[j].
En las Figuras 9a a 9d, se muestran realizaciones de la generación de un vector 901 de compartición de carga en base a un vector 903 de distribución de objetivo. Empezando por la Figura 9a, si por ejemplo un objetivo de comunicación B asociado a una entrada núm. 10 del vector de distribución de objetivo cae, entonces el vector 901 de compartición de carga puede ser actualizado de manera correspondiente. A título de ejemplo, el vector 901 de compartición de carga de la Figura 9a tiene entradas que corresponden con las del vector 903 de distribución de objetivo puesto que el vector 901 de compartición de carga puede haber sido generado en una etapa de iteración anterior. De ese modo, el estado de las entradas 10, 11, 12, 32, 33, 34, 50, 51 y 52 indica que los objetivos de comunicación correspondientes están disponibles para compartición de carga, por ejemplo para el reenvío de mensajes de comunicación.
Con el fin de actualizar el vector 901 de compartición de carga, se investiga el vector de distribución de objetivo en cuanto a, por ejemplo, un primer objetivo de comunicación alternativo que puede ser almacenado en una posición del vector de compartición de carga, lo que se indica mediante el índice 10, y así sucesivamente. Como resultado, el vector 901 de compartición de carga está en un estado que puede estar dispuesto para almacenamiento en memoria intermedia de las entradas afectadas con el fin de mantener, por ejemplo, un suministro en secuencia. De ese modo, la entrada 10 puede indicar almacenamiento en memoria intermedia, las entradas 11 y 12 pueden indicar reenvío, la entrada 32 puede indicar almacenamiento en memoria intermedia, las entradas 33 y 34 pueden indicar reenvío, la entrada 50 puede indicar almacenamiento en memoria intermedia, y las entradas 51 a 52 pueden indicar reenvío.
A título de ejemplo, en un instante de tiempo adicional, por ejemplo un objetivo de comunicación disponible indicado en las posiciones 11, 32 y 51 del vector de distribución de objetivo, puede fallar. De ese modo, la actualización del vector 901 de compartición de carga puede ser realizada de manera correspondiente de modo que el estado de entrada del vector de compartición de carga puede ser cambiado de nuevo a reenvío cuando se vacía una memoria intermedia, por ejemplo tras la expiración de un temporizador de reenrutamiento. De ese modo, las entradas 10 a 52
E10715796
11-08-2014
5
10
15
20
25
30
35
40
45
50
55
60
65
según han sido mostradas en la Figura 9c, pueden ser asociadas con el reenvío de objetivos de comunicación.
Con el fin de actualizar el vector de compartición de carga, se puede llevar a cabo el procedimiento según se ha mostrado en la Figura 9d, en donde se investiga el vector 903 de distribución de objetivo en cuanto a entradas activas, es decir, entradas que están asociadas a objetivos de comunicación disponibles, los cuales son copiados después en el vector 901 de compartición de carga. Como resultado, a título de ejemplo, todas las entradas del vector 901 de compartición de carga que usan el objetivo de comunicación afectado, el cual, conforme al vector 903 de distribución de objetivo de la Figura 9d, no está disponible, puede ser establecido en almacenamiento en memoria intermedia. Sin embargo, el estado de entrada puede ser cambiado de nuevo a reenvío cuando una memoria intermedia, por ejemplo, se vacía tras la expiración de un temporizador de reenrutamiento. De ese modo, las entradas 10 y 11 pueden estar asociadas a almacenamiento en memoria intermedia, las entradas 12, 32 y 33 pueden estar asociadas a reenvío, las entradas 34, 50 y 51 pueden estar asociadas a almacenamiento en memoria intermedia, y la entrada 52 puede estar asociada a reenvío.
Según se muestra en la Figura 9e, por ejemplo el objetivo de comunicación indicado en las posiciones 11, 32 y 51 del vector 901 de distribución de objetivo puede ser recuperado y por lo tanto puede resultar disponible. Así, el estado de las entradas 10 a 52 puede ser establecido en reenvío en el vector 903 de compartición de carga. De manera correspondiente, el vector 903 de compartición de carga puede ser actualizado según se muestra en la Figura 9f. A título de ejemplo, el estado de cada entrada en el vector de compartición de carga que se asocia con un cambio de un objetivo de comunicación puede ser establecido en almacenamiento en memoria intermedia. Sin embargo, tras la expiración de un temporizador de reenrutamiento, se puede iniciar un proceso de vaciado de memoria intermedia. Cuando la memoria intermedia está vacía, el estado de las entradas del vector de compartición de carga puede ser cambiado para que indique reenvío. De ese modo, las entradas 10, 34, 51 y 52 pueden indicar almacenamiento en memoria intermedia y las entradas 11, 12, 32, 33 y 50 pueden indicar reenvío. Según se muestra en la Figura 9g, también se puede recuperar el objetivo de comunicación original indicado mediante las entradas en las posiciones 10, 32 y 50 del vector 901 de distribución de objetivo. Por lo tanto, el vector 903 de compartición de carga puede ser actualizado correspondientemente. A este respecto, el estado de, por ejemplo, cada entrada en el vector 903 de compartición de carga que esté asociada a un cambio de objetivo de comunicación, puede ser establecido en almacenamiento en memoria intermedia. A continuación, el temporizador de reenrutamiento puede expirar, de modo que puede empezar el proceso de vaciado de memoria intermedia. Cuando la memoria intermedia se ha vaciado, entonces el estado de las entradas del vector de compartición de carga puede cambiar de nuevo a reenvío. De ese modo, las entradas 10, 32 y 50 pueden ser asociadas a almacenamiento en memoria intermedia, en donde las entradas 11, 12, 33, 34, 51 y 52 pueden ser asociadas a reenvío.
En resumen, cuando un objetivo de comunicación anteriormente no disponible se recupera y se vuelve disponible, el LDV puede ser actualizado como sigue:
Para cada índice j en la gama de 1, ..., M con LDV[j] distinto de TDV[j]:
-Explorar el TDV linealmente desde la entrada j hacia adelante para el primer objetivo de comunicación en estado disponible; -Si la exploración alcanza el final del TDV, entonces continuar por el principio; -Si el objetivo de comunicación encontrado es distinto del LDV[j], almacenarlo en CDV[j]; -Establecer el estado de CDV[j] en el estado de almacenamiento en memoria intermedia y poner en marcha el temporizador de reenrutamiento para la entrada de LDV. En otro caso, detener la iteración.
La actualización de LDV descrita en lo que antecede, a título de ejemplo, se basa en el estado, en el sentido de que dada una cierta disponibilidad de objetivos de comunicación, el patrón de compartición de carga puede ser siempre el mismo y puede que no dependa del historial de cambios de disponibilidad en modo alguno. Éste es el factor clave para nodos de comunicación redundante que aplica siempre el mismo patrón de compartición de carga, siempre que tengan información sobre los mismos estados de objetivos de comunicación.
Cuando se selecciona un nuevo objetivo de comunicación para una entrada de LDV, una exploración lineal a través del TDV aleatorizado para el primer objetivo de comunicación disponible puede seleccionar objetivos de comunicación de forma seudo aleatoria conforme a su peso de capacidad relativa entre los objetivos de comunicación disponibles restantes. Mediante este planteamiento, la frecuencia relativa de objetivos de comunicación disponibles en el LDV puede adherirse estadísticamente a la distribución de capacidad de los restantes objetivos de comunicación disponibles.
La Figura 10 muestra un diagrama de un método para reenviar un mensaje de comunicación hacia un objetivo de comunicación según los principios de compartición de carga descritos en la presente memoria. En la etapa 1001, los parámetros de entrada para, por ejemplo, una función h de conversión, son recuperados a partir de la cabecera del mensaje de comunicación, por ejemplo a partir de la cabecera de mensaje extendida. Los parámetros de entrada pueden ser al menos uno de: código de punto de potencia originario (OPC), código de punto de destino (DPC), indicador de red (NI), indicador de servicio (SI) y, por ejemplo, un código de identificación de circuito (CIC) en caso
10
15
20
25
30
35
40
45
50
55
60
65
E10715796
11-08-2014
de un mensaje ISUP (partes de usuario de ISDN). En la etapa 1003, la función de conversión h está desplegada con el fin de generar un índice que indique una entrada de un vector 1004 de compartición de carga. La función de conversión h puede ser, a título de ejemplo, una función hash que genere un valor hash sobre la base de los parámetros de entrada, en donde el valor hash constituye una realización del índice antes mencionado. Sin embargo, la función de conversión h puede ser cualquier función que mapee al menos un parámetro de entrada sobre un valor que constituya un índice para el vector de compartición de carga. En la etapa 1006, se recupera la entrada en la posición del vector de compartición de carga que se indica mediante el índice proporcionado por la función de conversión h. En la etapa 1007, se toma una decisión dependiendo de un estado de entrada del vector 1004 de compartición de carga respecto a si enviar el mensaje de comunicación hacia el objetivo de comunicación indicado por la entrada recuperada, o respecto a si almacenar en memoria intermedia el mensaje de comunicación. Si el vector 1004 de compartición de carga no está siendo actualizado, entonces, en la etapa 1009, el mensaje de comunicación es reenviado hacia el objetivo de comunicación Ti que está asociado a la entrada en la posición i del vector 1004 de compartición de carga. A la inversa, si el vector 1004 de compartición de carga está siendo actualizado, entonces, en la etapa 1011, el mensaje de comunicación es almacenado en memoria intermedia en una memoria intermedia de entrada, por ejemplo en una memoria intermedia de entrada del vector 1004 de compartición de carga.
En cuanto a la compartición de carga de los flujos de mensajes, la función h puede mapear todos los mensajes de un flujo de mensajes dado respecto al mismo valor i. Éste puede ser el caso para cualquier función si todos los mensajes de un flujo tienen el mismo conjunto de parámetros de entrada. Con el fin de asegurar una buena compartición de carga a todos los objetivos de comunicación, la función h puede producir valores de salida en la gama 1, ..., M completa o índices de manera uniforme. Dado que el flujo de entrada de mensajes tiene diversidad suficiente en los parámetros de entrada, por ejemplo que el número de flujos de mensajes discernibles es grande en comparación con el número de objetivos de comunicación, se puede usar una función hash para este propósito.
Si no existe ningún flujo de mensajes, pero si por el contrario pueden ser cargados mensajes individuales compartidos de forma independiente, puede que no exista necesidad de ninguna función de conversión. Se puede lograr una compartición de carga óptima simplemente escalonando un contador de round-robin en la gama de 1, ..., M para cada mensaje recibido y usar el valor actual del contador como salida.
La salida de la función de conversión puede ser usada entonces como índice en el LDV. Si se seleccionó una entrada de LDV en el estado de reenvío del LDV, entonces el mensaje de comunicación puede ser reenviado directamente al objetivo de comunicación en la entrada de LDV. Sin embargo, si el LDV fue seleccionado en el estado de almacenamiento en memoria intermedia del LDV, entonces el mensaje de comunicación puede ser colocado al final de la memoria intermedia de entrada del LDV.
Con la expiración del temporizador de reenrutamiento para la entrada de LDV específica, se puede iniciar un proceso de vaciado de memoria intermedia paralelo. Este proceso puede recoger mensajes desde la cabecera de la memoria intermedia del LDV y reenviarlos al objetivo de comunicación de la entrada de LDV. Cuando la memoria intermedia se ha vaciado, el proceso puede detenerse y el estado de la entrada de LDV puede ser establecido de nuevo en el estado de reenvío.
El planteamiento de compartición de carga descrito en la presente memoria puede ser usado, según algunas implementaciones, para compartición de carga de flujos de mensajes y mensajes individuales sin restricciones de compartición de carga. Opcionalmente, se puede proporcionar suministro en secuencia mediante almacenamiento en memoria intermedia durante el reenrutamiento. Adicionalmente, se puede realizar el reenrutamiento en cambio de disponibilidad de un objetivo de comunicación.
Según algunas realizaciones, solamente los flujos de mensajes afectados pueden ser almacenados en memoria intermedia temporalmente. Por otra parte, los flujos de mensajes no afectados para la misma aplicación o el mismo destino, no necesitan ser almacenados en memoria intermedia. Adicionalmente, se puede lograr una inversión del reenrutamiento cuando los objetivos de comunicación se encuentran de nuevo disponibles, por ejemplo cuando algún nodo de comunicación puede llegar al mismo LDV en base al establecimiento actual de pesos y a las capacidades de objetivo de comunicación.
Según algunas realizaciones, puede ser soportado el despliegue de nodos de comunicación redundante que pueden asumir el control directamente de la compartición de carga de flujos de mensajes.
Según algunas realizaciones, se pueden usar recursos internos reducidos para almacenamiento en memoria intermedia, de modo que se pueda evitar una relación incrementada de pérdida de mensajes.
Según algunas realizaciones, una estructura genérica para la compartición de carga de tráfico de señalización con una manipulación de flujos de mensajes específica de la aplicación y/o incluso la distribución de todos los valores SLS en cada ruta. De ese modo, se puede realizar la compartición de carga a nivel de red sobre múltiples etapas de retransmisión como se muestra, por ejemplo en la Figura 6, de una manera eficiente.
E10715796
11-08-2014
Según algunas realizaciones, se puede realizar una compartición de carga sopesada en capacidad.
Según algunas realizaciones, la compartición de carga de mensajes o de flujos de mensajes puede ser realizada 5 sobre la base de los principios escritos en la presente memoria.
Según algunas realizaciones, los nodos de compartición de carga sin historia, por ejemplo redundantes, pueden hacerse cargo de la compartición de carga de forma directa.
10 Según algunas realizaciones, se puede tomar en consideración un gran número de objetivos de compartición de carga, por ejemplo más de 16.

Claims (13)

  1. E10715796
    11-08-2014
    REIVINDICACIONES
    1.-Método para generar un vector de compartición de carga para compartición de carga de una pluralidad de objetivos de comunicación en una red de comunicación, estando el método caracterizado por las etapas de:
    5
    -proporcionar (101) un vector de distribución de objetivo que comprende un número de entradas por objetivo de comunicación, indicando cada entrada el objetivo de comunicación, apareciendo cada objetivo de comunicación en el vector de distribución de objetivo con una frecuencia relativa conforme a la capacidad del objetivo de comunicación, determinando el vector de distribución de objetivo un patrón de distribución de
    10 objetivo para la pluralidad de objetivos de comunicación, y -generar (103) el vector de compartición de carga en base a entradas activas del vector de distribución de objetivo, indicando cada una de las entradas activas un objetivo de comunicación que está disponible a efectos de compartición de carga en la red de comunicación.
    15 2.-El método de la reivindicación 1, en el que la etapa de proporcionar (101) el vector de distribución de objetivo comprende:
    -determinar el número de entradas por objetivo de comunicación en base a una capacidad del objetivo de comunicación respectivo.
    20
  2. 3.-El método de la reivindicación 2, en donde la etapa de determinar el número de entradas se basa en la siguiente fórmula: wi·M ---------, 25 wtot
    en donde Wi indica una capacidad del iº objetivo de comunicación, en donde M indica un número total de entradas en el vector de distribución de objetivo, y en donde Wtot indica una capacidad de todos los objetivos de comunicación indicados en el vector de distribución de objetivo.
    30 4.-El método de cualquiera de las reivindicaciones anteriores, en donde la etapa de proporcionar el vector de distribución de objetivo comprende reordenar aleatoriamente entradas en el vector de distribución de objetivo, o insertar aleatoriamente entradas en el vector de distribución de objetivo para obtener un vector de distribución de objetivo aleatorizado.
    35 5.-El método según cualquiera de las reivindicaciones anteriores, donde la etapa de proporcionar un vector de distribución de objetivo se ejecuta cuando: se define un objetivo de comunicación y debe ser insertado, se anula la definición de un objetivo de comunicación y debe ser borrado, o por cualquier cambio en la capacidad de los objetivos de comunicación.
    40 6.-El método de cualquiera de las reivindicaciones anteriores, en donde la etapa de generar (103) el vector de compartición de carga comprende explorar el vector de distribución de objetivo en cuanto a entradas asociadas a objetivos de comunicación que estén disponibles para compartición de carga.
    45 7.-El método de cualquiera de las reivindicaciones anteriores, en donde la etapa de generar (103) el vector de compartición de carga comprende copiar las entradas que indiquen objetivos de comunicación que estén disponibles para compartición de carga desde el vector de distribución de objetivo hacia el vector de compartición de carga.
  3. 8.-El método de cualquiera de las reivindicaciones anteriores, en donde la etapa de generar (103) el vector de 50 compartición de carga comprende:
    -comparar entradas del vector de compartición de carga con entradas del vector de distribución de objetivo, y -actualizar entradas del vector de compartición de carga con entradas del vector de distribución de objetivo
    55 que estén asociadas a objetivos de comunicación que estén disponibles en cuanto a compartición de carga, para obtener las entradas activas en el vector de compartición de carga.
  4. 9.-El método de cualquiera de las reivindicaciones anteriores, en donde la etapa de generar (103) el vector de compartición de carga comprende:
    60 -comparar (201) una entrada del vector de compartición de carga con una entrada del vector de distribución de objetivo; -si la entrada del vector de distribución de objetivo indica un objetivo de comunicación que esté disponible para compartición de carga, y si la entrada del vector de distribución de objetivo difiere de la entrada del
    65 vector de compartición de carga, reemplazar (207) la entrada del vector de compartición de carga por la
    13
    E10715796
    11-08-2014
    entrada del vector de distribución de objetivo para obtener una entrada activa en el vector de compartición de carga, o -si la entrada del vector de distribución de objetivo indica un objetivo de comunicación que no esté disponible en cuanto a compartición de carga, comparar (201) la entrada del vector de compartición de carga con una
    5 entrada subsiguiente adicional del vector de distribución de objetivo.
  5. 10.-El método de cualquiera de las reivindicaciones anteriores, en donde la etapa de generar (103) el vector de compartición de carga se ejecuta cada vez que cambia la disponibilidad de un objetivo de comunicación o cuando se recalcula el vector de distribución de objetivo.
    10
  6. 11.-El método de cualquiera de las reivindicaciones 6 a 9, donde la etapa de generar comprende además:
    -establecer un estado de almacenamiento en memoria intermedia para cada entrada afectada por un objetivo de comunicación que esté disponible o no disponible, en el vector de compartición de carga,
    15 -establecer un temporizador de reenrutamiento, y -establecer un estado de reenvío para una entrada afectada por un objetivo de comunicación que esté disponible o no disponible en el vector de compartición de carga, cuando la memoria intermedia correspondiente esté vacía tras la expiración del temporizador.
    20 12.-El método según cualquiera de las reivindicaciones anteriores, comprendiendo el método:
    -determinar (301) un objetivo de comunicación a partir del vector de compartición de carga, y -reenviar (303) un mensaje de comunicación hacia el objetivo de comunicación determinado.
    25 13.-El método de la reivindicación 12, comprendiendo la etapa de determinar (301):
    -determinar un valor de índice sobre la base del mensaje de comunicación en base a una cabecera del mensaje de comunicación, o proporcionar un valor de índice mediante un contador de mensajes, y -seleccionar la entrada activa del vector de compartición de carga usando el valor de índice para determinar
    30 el objetivo de comunicación.
  7. 14.-El método de la reivindicación 13, en donde la etapa de determinar (301) el valor de índice comprende calcular un valor hash a partir de al menos una entrada de cabecera de mensaje de la cabecera del mensaje de comunicación.
    35
  8. 15.-El método de una cualquiera de las reivindicaciones 1 a 14, en donde el objetivo de comunicación es una ruta de comunicación, una trayectoria de comunicación, un nodo de red, o una aplicación distribuida sobre un número de nodos de red.
    40 16.-Un nodo de comunicación para generar un vector de compartición de carga que comprende una pluralidad de objetivos de comunicación a efectos de compartición de carga en una red de comunicación, estando el nodo de comunicación caracterizado por un procesador (401) que está configurado:
    -para proporcionar (403) un vector de distribución de objetivo que comprende un número de entradas por
    45 objetivo de comunicación, indicando cada entrada el objetivo de comunicación, apareciendo cada objetivo de comunicación en el vector de distribución de objetivo con una frecuencia relativa según la capacidad del objetivo de comunicación, determinando el vector de distribución de objetivo un patrón de distribución de objetivo para la pluralidad de objetivos de comunicación, y -para generar (405) el vector de compartición de carga en base a entradas activas del vector de distribución
    50 de objetivo, indicando cada una de las entradas activas un objetivo de comunicación que está disponible a efectos de compartición de carga en la red de comunicación.
  9. 17.-El nodo de comunicación de la reivindicación 16, en donde el procesador (401) está configurado además para:
    55 -determinar (301) un objetivo de comunicación a partir del vector de compartición de carga, y -en donde el nodo de comunicación comprende además un redireccionador (407) para reenviar el mensaje de comunicación hacia el objetivo de comunicación determinado.
  10. 18.-El nodo de comunicación de la reivindicación 16 ó 17, en donde el procesador (401) está configurado además 60 para:
    -determinar un valor de índice en base al mensaje de comunicación basado en una cabecera del mensaje de comunicación, o proporcionar un valor de índice mediante un contador de mensajes, y -seleccionar la entrada activa del vector de compartición de carga usando el valor de índice para determinar
    65 el objetivo de comunicación.
    14
    E10715796
    11-08-2014
  11. 19.-El nodo de comunicación de la reivindicación 18, en donde el procesador (401) está configurado además para determinar el valor de índice, en base a un mensaje de comunicación que va a ser reenviado, calculando un valor hash a partir de al menos la cabecera del mensaje de comunicación.
    5
  12. 20.-El nodo de comunicación de la reivindicación 16, en donde el procesador (401) está configurado además para reordenar aleatoriamente entradas en el vector de distribución de objetivo, o para insertar aleatoriamente entradas en el vector de distribución de objetivo para obtener un vector de distribución de objetivo aleatorizado.
    10 21.-Un nodo de comunicación según la reivindicación 16, dispuesto además para llevar a cabo todas las etapas de los métodos de las reivindicaciones 2 y 3.
  13. 22.-Un nodo de comunicación según la reivindicación 18, dispuesto además para llevar a cabo todas las etapas de los métodos de las reivindicaciones 5 a 11.
    15
    15
ES10715796.8T 2010-04-19 2010-04-19 Método para generar un vector de compartición de carga Active ES2491616T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2010/055123 WO2011131224A1 (en) 2010-04-19 2010-04-19 Method for generating a load sharing vector

Publications (1)

Publication Number Publication Date
ES2491616T3 true ES2491616T3 (es) 2014-09-08

Family

ID=43244744

Family Applications (1)

Application Number Title Priority Date Filing Date
ES10715796.8T Active ES2491616T3 (es) 2010-04-19 2010-04-19 Método para generar un vector de compartición de carga

Country Status (4)

Country Link
US (2) US9118504B2 (es)
EP (1) EP2561650B1 (es)
ES (1) ES2491616T3 (es)
WO (1) WO2011131224A1 (es)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2561650B1 (en) * 2010-04-19 2014-07-09 Telefonaktiebolaget LM Ericsson (publ) Method for generating a load sharing vector
CN102891799B (zh) * 2011-07-22 2017-04-12 华为技术有限公司 一种选择路由的方法及设备

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6069894A (en) 1995-06-12 2000-05-30 Telefonaktiebolaget Lm Ericsson Enhancement of network operation and performance
JP3323745B2 (ja) * 1996-07-25 2002-09-09 株式会社日立製作所 物理量検出装置の特性調整手段および発熱抵抗式空気流量装置
US6697333B1 (en) * 1998-03-04 2004-02-24 Alcatel Canada Inc. Bandwidth load consideration in network route selection
US6266531B1 (en) * 1998-07-01 2001-07-24 Ericsson Inc. System and method for adaptive thresholds for cell load sharing
US6768718B1 (en) 2000-08-01 2004-07-27 Nortel Networks Limited Courteous routing
JP4165017B2 (ja) * 2001-02-06 2008-10-15 沖電気工業株式会社 トラヒック管理方法及びトラヒック管理装置
US7570594B2 (en) * 2003-10-01 2009-08-04 Santera Systems, Llc Methods, systems, and computer program products for multi-path shortest-path-first computations and distance-based interface selection for VoIP traffic
GB2412033B (en) * 2004-02-12 2006-11-15 Parc Technologies Ltd Traffic flow determination in communications networks
US8072901B1 (en) * 2005-05-09 2011-12-06 Cisco Technology, Inc. Technique for efficient probing to verify policy conformance
FR2908575B1 (fr) * 2006-11-09 2009-03-20 At & T Corp Methode et appareil pour fournir un equilibrage de charge base sur le flux
WO2009061973A1 (en) * 2007-11-09 2009-05-14 Blade Network Technologies, Inc. Session-less load balancing of client traffic across servers in a server group
EP2561650B1 (en) * 2010-04-19 2014-07-09 Telefonaktiebolaget LM Ericsson (publ) Method for generating a load sharing vector

Also Published As

Publication number Publication date
WO2011131224A1 (en) 2011-10-27
US20130194916A1 (en) 2013-08-01
US9118504B2 (en) 2015-08-25
EP2561650A1 (en) 2013-02-27
US20150304221A1 (en) 2015-10-22
US9736075B2 (en) 2017-08-15
EP2561650B1 (en) 2014-07-09

Similar Documents

Publication Publication Date Title
US10200307B2 (en) Communication system, control device, processing rule setting method, packet transmission method, and program
CN104702523B (zh) 分组转发装置和方法
CN1663194B (zh) 用于在光纤信道结构中选择性地传递帧的方法和系统
ES2375326T3 (es) Método, sistema y dispositivo de protección en una red de transporte de paquetes.
JP6264743B2 (ja) 重複パケット抑制
US7061909B2 (en) System and method for controlling the multicast traffic of a data packet switch
CN102238072B (zh) 一种动态选择路由的方法及clos交换网系统
CN105379188B (zh) 保护倒换源路由
US20110252284A1 (en) Optimization of packet buffer memory utilization
CN101485161A (zh) 在多重主干网络结构中进行网络路由选择的系统和方法
US11303586B2 (en) Switching and load balancing techniques in a communication network
Chiesa et al. On the resiliency of randomized routing against multiple edge failures
CN105940717B (zh) 容断/容迟/容中断网络中使用的节点设备和通信方法
US11102106B2 (en) Dynamic flooding for link state protocols
ES2491616T3 (es) Método para generar un vector de compartición de carga
CN110535697A (zh) 一种均衡区块链跨域广播网络负载的方法
TW201246845A (en) Method and apparatus for routing in a single tier switched network
JPH02248133A (ja) 光ローカル/メトロポリタンエリア網
ES2443955T3 (es) Enrutador de malla y red
JP4128944B2 (ja) マルチキャスト転送経路設定方法、マルチキャスト転送経路計算装置、プログラムおよび記録媒体
CN113329048B (zh) 基于交换机的云负载均衡方法、装置及存储介质
Ren et al. Summary-Vector-Based effective and fast immunization for epidemic-based routing in opportunistic networks
JP2005094137A (ja) マルチキャスト転送経路設定方法および装置
JP5022412B2 (ja) 経路情報管理システム、経路情報管理方法、およびプログラム
KR101540540B1 (ko) 협력 캐싱과 포워딩에 기반하는 콘텐츠 기반 네트워크의 일관된 해싱 처리 시스템