ES3020007T3 - A method for implementing a consistent hashing in a communication network - Google Patents

A method for implementing a consistent hashing in a communication network Download PDF

Info

Publication number
ES3020007T3
ES3020007T3 ES21152734T ES21152734T ES3020007T3 ES 3020007 T3 ES3020007 T3 ES 3020007T3 ES 21152734 T ES21152734 T ES 21152734T ES 21152734 T ES21152734 T ES 21152734T ES 3020007 T3 ES3020007 T3 ES 3020007T3
Authority
ES
Spain
Prior art keywords
hash function
virtual
search
packet
processing units
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
ES21152734T
Other languages
English (en)
Inventor
Amir Krayden
Yuval Lev
Evgeny Sandler
Alexander Zilberman
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.)
Drivenets Ltd
Original Assignee
Drivenets Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Drivenets Ltd filed Critical Drivenets Ltd
Application granted granted Critical
Publication of ES3020007T3 publication Critical patent/ES3020007T3/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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop 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/22Alternate routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/74591Address table lookup; Address filtering using content-addressable memories [CAM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/748Address table lookup; Address filtering using longest matching prefix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

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

Abstract

Se proporciona un método para su uso en una red de comunicaciones. El método comprende los siguientes pasos: (i) proporcionar varias unidades de procesamiento de red (NPU) en la red de comunicaciones; (ii) establecer una réplica de al menos una de las NPU; (iii) organizar virtualmente las NPU y las réplicas en una configuración de anillo; (iv) asociar una identificación virtual primaria única y su correspondiente identificación virtual de respaldo única con cada entidad activa y disponible seleccionada entre las NPU y réplicas; (v) establecer una lista de valores hash, cada uno asociado con la identificación virtual primaria o la identificación virtual de respaldo de la entidad activa y disponible correspondiente; (vi) implementar un algoritmo de hash consistente en anillo para realizar una resolución de búsqueda para un hash consistente; y (vii) en caso de cambio en una entidad activa y disponible con una determinada identificación virtual primaria, utilizar la identificación virtual de respaldo correspondiente para mantener la continuidad del anillo. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Un método para implementar una función de troceo consistente en una red de comunicación
Campo técnico
La presente divulgación se refiere en general al campo de los sistemas de comunicación. Más en particular, la presente divulgación se refiere a sistemas que implementan infraestructura para enrutamiento multiservicio, virtualización de funciones de red virtual e interconexión en red definida por software.
Glosario
ECMP- Múltiples trayectorias de igual coste(Equal Cost Multi-Path).
EPC- Núcleo de paquetes evolucionado(Evolved Packet Core).
FRR- Re-enrutamiento rápido(Fast Re-Route).
LPM- Coincidencia del prefijo más largo(Longest Prefix Match).
NAT- Traducción de dirección de red(Network Address Translation).
NCP- Reenviador de paquetes en la nube de red(Network Cloud Packet Forwarder).
NPU- Unidad de procesamiento de red(Network Processing Unit).
TCAM- Memoria direccionable de contenido ternario(Ternary Content-Adressable Memory).
WCMP- Múltiples trayectorias de coste ponderado(Weighted Cost Multi-Path).
VRF- Enrutamiento y reenvío virtual(Virtual Routing amd Forwarding).
Antecedentes
El equilibrio de carga con estado a gran escala es una parte importante de muchas funciones de red y un campo activo de investigación académica y práctica. El uso del equilibrio de carga es parte de muchas capas diferentes en las funcionalidades de interconexión en red, que incluye, pero sin limitación: Distribución de tráfico de agregación de enlaces, ECMP / WCMP (múltiples trayectorias de igual coste, múltiples trayectorias de coste ponderado), equilibrio de carga de sesión L4-L7, implementación de bases de datos distribuidas, funciones de EPC (núcleo de paquetes evolucionado) de movilidad, funciones de NAT (traducciones de dirección de red) y similares.
Los sistemas clásicos sin estado (agregación de enlaces, ECMP / ECMP) o con estado (equilibrio de carga de sesión L4-L7, etc.) giran en torno a la forma de elegir el destino o el servidor / microservicio eventual que debe manejar un elemento de tráfico. La forma en que se obtienen, gestionan, contabilizan o clasifican los destinos existentes está fuera del alcance de esta divulgación, al igual que las formas exactas en que los parámetros de carga / capacidades de estos destinos se transmiten al dispositivo / dispositivos de equilibrio de carga (que pueden basarse en la comunicación fuera de banda o en la comunicación dentro de banda usando flujos especiales o empaquetando los existentes, donde los problemas son más complicados en el caso de una arquitectura de equilibrio de carga distribuida).
J. Maenpaaet al.describen en su artículo "A Topology Plug-in for Resource Location And Discovery, draft-maenpaap2psip-topologyplugin-00", un protocolo de señalización entre pares (RELOAD) que puede usarse para mantener una red superpuesta y para almacenar y recuperar datos de la superposición. El documento define un nuevo complemento de topología para RELOAD que es más apropiado para las superposiciones a gran escala del mundo real.
El documento US 2018/270153 se refiere a la entropía en las tablas de enrutamiento que puede aumentarse para realizar el reenvío de paquetes. Las tablas de función de troceo que almacenan rutas de reenvío pueden dividirse en múltiples segmentos de tabla de función de troceo y las rutas de reenvío pueden almacenarse a través de los segmentos de tabla de función de troceo en diferentes segmentos de ruta.
Sumario
La invención se define haciendo referencia a las reivindicaciones adjuntas.
Es un objeto de la presente divulgación proporcionar un método novedoso y perfeccionado que permita efectuar cambios en una red de comunicación que comprende una pluralidad de unidades de procesamiento de red y/o agrupaciones de la misma, mientras que se añade/retira/supera un fallo de una unidad de procesamiento de red.
Otro objeto consiste en proporcionar un método novedoso que permita obtener un rendimiento de equilibrio de carga mejorado.
Otro objeto consiste en proporcionar un método novedoso que permita obtener un escalamiento mejorado de las redes existentes que comprenden un gran número de unidades de procesamiento de red.
Otro objeto más consiste en proporcionar un método novedoso y mejorado para utilizar diferentes grupos de equilibrio de carga en el transporte de comunicaciones en una red de comunicaciones.
Otros objetos serán evidentes a partir de la siguiente descripción.
Según un primer ejemplo de la misma se proporciona un método para su uso en una red de comunicación, en donde el método comprende las etapas de:
(i) proporcionar una pluralidad de unidades de procesamiento de red (NPU) comprendidas en la red de comunicación; (ii) establecer una replicación de al menos una de esa pluralidad de unidades de procesamiento de red;
(iii) disponer la pluralidad de unidades de procesamiento de red y la al menos una replicación, en una configuración de anillo virtual;
(iv) asociar una identificación virtual primaria única y una identificación virtual de respaldo única correspondiente con cada unidad de procesamiento de red activa y disponible y la al menos una replicación;
(v) establecer una lista de valores de función de troceo, asociados con las identificaciones virtuales primarias de dichas unidades de procesamiento de red activas y disponibles y valores de función de troceo asociados con la identificación virtual de respaldo de las correspondientes unidades de procesamiento de red activas y disponibles;
(vi) implementar un algoritmo de función de troceo consistente en anillo para llevar a cabo una resolución de búsqueda de una función de troceo consistente (por ejemplo, usando una clave arbitraria K); y
(vii) en caso de cambio (es decir, adición/eliminación/fallo) en al menos una de las entidades activas y disponibles que tiene una identificación virtual primaria única respectiva, usar la identificación virtual de respaldo correspondiente para mantener la continuidad del anillo.
En otro ejemplo más, la resolución de la búsqueda para una función de troceo consistente se lleva a cabo basándose en la búsqueda de ID de destino de paquete usando una clave construida a partir de los metadatos de dicho paquete. Opcionalmente, los metadatos del paquete se derivan a partir de las cabeceras de interconexión en red del paquete.
De acuerdo con otro ejemplo, la resolución de la búsqueda para una función de troceo consistente se realiza recuperando un ID de destino respectivo mientras se usa un algoritmo de memoria direccionable de contenido ternario (TCAM).
De acuerdo con otra realización, el método proporcionado comprende además una etapa de composición de un espacio de rutas de las subredes y/o prefijos de interconexión en red, y en donde la función de búsqueda se basa en un algoritmo de coincidencia de prefijo más largo (LPM).
De acuerdo con otra realización más, se conserva la misma función de búsqueda (LPM) y el espacio se construye usando posibles identificaciones virtuales como prefijos.
En otra realización más de la presente divulgación, el método proporcionado comprende además una etapa de utilización de diferentes grupos de equilibrio de carga como tablas de VRF (enrutamiento y reenvío virtual), que, a su vez, se usan como parámetro mientras se lleva a cabo la búsqueda del algoritmo de LPM, generando de esta manera un espacio de función de troceo consistente especializado para su uso como espacio de ruta para transportar tráfico en la red de comunicación.
Breve descripción de los dibujos
El dibujo adjunto, que se incorpora en el presente documento y constituye una parte de esta memoria descriptiva, ilustra una realización de la divulgación y, junto con la descripción, sirve para explicar los principios de las realizaciones divulgadas en el presente documento.
LaFigura 1ejemplifica una configuración virtual en anillo de espacio de función de troceo consistente en software, interpretada de acuerdo con una realización de la presente invención;
LaFigura 2ejemplifica una resolución de búsqueda para una función de troceo consistente en software usando una clave arbitraria, para la red ejemplificada en la Figura 1;
LaFigura 3ejemplifica una resolución de búsqueda para una función de troceo consistente en software usando una clave arbitraria tras un fallo de nodo;
LaFigura 4ejemplifica una configuración virtual en anillo de espacio de función de troceo consistente en software para una red que comprende las NPU;
LaFigura 5ejemplifica una resolución de búsqueda para una función de troceo consistente en software usando una clave arbitraria, para la red de NPU ejemplificada en la Figura 4;
LaFigura 6ejemplifica una resolución de búsqueda para una función de troceo consistente en software usando una clave arbitraria después de un fallo de nodo de NPU;
LaFigura 7ilustra una configuración virtual en anillo de espacio de espacio de función de troceo consistente en software de grupos de equilibrio de carga, interpretada de acuerdo con una realización de la presente invención; y la Figura 8 ejemplifica una resolución de búsqueda para una función de troceo consistente en software después de la clasificación de paquetes utilizando diferentes grupos de equilibrio de carga como tablas de VRF (enrutamiento y reenvío virtual) mientras se lleva a cabo una búsqueda de algoritmo de LPM.
Descripción de realizaciones ilustrativas
Algunos de los detalles y valores específicos en la siguiente descripción detallada se refieren a ciertos ejemplos de la divulgación. Sin embargo, esta descripción se proporciona únicamente a modo de ejemplo y no pretende limitar el alcance de la invención de ninguna manera. Como apreciarán los expertos en la materia, el sistema de enrutamiento distribuido reivindicado puede implementarse usando otros dispositivos que son conocidos en la técnicaper se.El alcance de la invención se puede resumir haciendo referencia a las reivindicaciones adjuntas.
Con el auge de las arquitecturas distribuidas, la función de troceo consistente se convirtió en un actor principal. El término "función de troceo"(hashing)se refiere a un proceso para mapear datos de tamaño arbitrario a valores de tamaño fijo. La función de troceo tiene muchas aplicaciones en la ciencia de la informática, tal como, por ejemplo, la suma de comprobación. Para verificar la integridad de un conjunto de datos, un servidor aplica la función de troceo a un conjunto de datos e indica el valor de función de troceo a un cliente. A continuación, el cliente aplica la función de troceo a su versión del conjunto de datos y compara los valores de función de troceo. Si los dos son iguales, es probable que se verifique la integridad (por ejemplo, puede surgir un problema cuando dos piezas de datos distintos tienen el mismo valor de función de troceo (una colisión)).
Uno de los desafíos asociados con esta metodología es dispersar los valores a través de un dominio. La distribución de la carga es, por tanto, el proceso de dispersar la carga a través de las unidades de procesamiento la red.
La expresión "unidad de procesamiento de red", como se usa en el presente documento a través de toda la memoria descriptiva y las reivindicaciones, se usar para indicar cualquier número del grupo que comprende un nodo, un servidor, una unidad de cálculo, y similares. El equilibrio de la carga es un ejemplo de distribución de carga. Se usa para distribuir un conjunto de tareas a través de un conjunto de recursos. Por ejemplo, el equilibrio de carga puede usarse para distribuir las solicitudes de API entre las instancias de servidor web.
Sin embargo, cuando se trata de datos, podemos usar el término fragmentación(sharding).Un fragmento de base de datos es una partición horizontal de los datos en una base de datos. Un ejemplo típico es una base de datos particionada en tres fragmentos, cada uno de los cuales tiene un subconjunto de los datos totales.
El equilibrio de carga y la fragmentación comparten algunos desafíos comunes. Dispersar los datos de forma uniforme se usa, por ejemplo, para garantizar que un nodo no esté sobrecargado en comparación con los otros. En algunos casos, el equilibrio de carga y la fragmentación también necesitan asociar tareas o datos al mismo nodo.
El principio de la función de troceo mod-n es el siguiente. La carga necesita distribuirse entre los nodos basándose en identificadores clave. A cada clave se aplica una función de troceo para transformar una entrada en un número entero. A continuación, se realiza un módulo basándose en el número de nodos. Si se implementa la fragmentación y los datos se distribuyen basándose en la estrategia mod-n, en un caso en el que el número de nodos deba escalarse, habría que realizar una operación de reequilibrio.
Ahora bien, si se han almacenado grandes cantidades (millones o incluso miles de millones) de datos y ahora se requiere reequilibrar una parte sustancial de los mismos, el reequilibrio debería ser preferentemente un proceso en donde: la distribución permanezca lo más uniforme posible basándose en el nuevo número de nodos, y se limite el número de claves que es necesario migrar. Este es el propósito de los algoritmos de función de troceo consistentes, algoritmos que mantienen la clave consistente hasta cierto punto para mantener la distribución uniforme.
Un algoritmo de función de troceo consistente en anillo es un algoritmo que se basa en un anillo (una matriz conectada de extremo a extremo), y la primera operación es crear el anillo. Un anillo tiene una longitud fija y puede estar particionado en un número predeterminado de particiones, y las unidades de procesamiento de red (nodos en este ejemplo) están ubicadas en estas particiones.
En general, un dispositivo de equilibrio de carga requiere una función F(K), que está configurada para hacer coincidir una clave (por ejemplo, cabeceras de red, claves de bases de datos y similares) con un ID de nodo.
Definamos la función F(K) como:
F(K):{K}^{N}
en la que {K} es un conjunto de claves disponibles, y {N} es el conjunto de nodos activos y disponibles.
La mayoría de los sistemas usan una implementación básica pero muy escalable, de modo que se usa una función de troceo (H):
F(K)= H(K) %N
En la ecuación anterior H es una función de troceo que traduce cualquier clave arbitraria en un número, mientras que N es el número de nodos activos y disponibles actuales. Ahora, supongamos que H en realidad está configurado para operar sobre un conjunto de claves conocido, y tiene una complejidad de tiempo de ejecución delimitada, de manera que F(K) se considera O(1).
A continuación, el problema es qué ocurre cuando N (el número de unidades de procesamiento de red disponibles y activas, por ejemplo, nodos) cambia debido a una adición, retirada o fallo de un elemento de red. En un caso de este tipo, el problema que surge es que toda la lógica de mapeo que está definida por F, cambia. Por consiguiente, se produce una redistribución completa del tráfico a todos los destinos, independientemente del hecho de que el elemento real estuviera destinado originalmente a un nodo cambiado (lo que da como resultado, en muchos cambios dentro del sistema, grandes radios de explosión y una necesidad de mover contenidos entre lugares).
Matemáticamente, el resultado se deriva del uso del operador de módulo (%). Cuando el número de nodos N cambia a N',
F(K) != F' (K) [(F(K) = H (K) %N), F' (K) = H (K) % N']
para cada H(K)>=N'.
Para mitigar el problema sin aumentar la huella de memoria, pero teniendo en cuenta las diferentes capacidades de procesamiento de nodos (en términos de memoria, CPU, ancho de banda de interconexión en red y retardo, etc.), se puede usar la función M(K), implementando las siguientes etapas:
1. Crear un ID de nodo virtual para cada nodo activo y disponible, en donde el ID de nodo virtual se define por:
V id = H(NODE_id, R), en el que NODE_id es el ID de nodo físico, y R es el número de réplica que crea un peso del número de veces que este nodo debería usarse en los cálculos, permitiendo de esta manera el uso de función de troceo desigual;
2. Crear una lista ordenada L de los V<id>(preferentemente sus valores de función de troceo)
3. Cuando se necesita resolver un paquete / clave, recuperar la función F(K) siguiendo las siguientes etapas:
1. Calcular el valor de función de troceo de la clave Nid = H(K)
2. Determinar el elemento mínimo en L que es mayor o igual que N<id>:
ID de nodo real = Buscar (L, N<id>, [V<id>>= N<id>])
El método anterior puede implementarse eficazmente usando un software en donde la complejidad de tiempo de ejecución es O(log2N) y la complejidad de espacio es O(N), usando una búsqueda binaria o estructuras de árbol.
Esta implementación puede considerarse como una representación geométrica de un círculo, en el que los puntos comprendidos en el círculo son los diversos V<id>. Ya no es sensible más a un cambio en N, ya que F(K) no usa la operación módulo. Una adición, retirada o fallo de un nodo marcaría los Vid pertinentes como inactivos y la búsqueda devolvería el siguiente elemento disponible (en la dirección de las agujas del reloj), lo que daría como resultado una resolución diferente para los elementos destinados únicamente a él - lo que simplifica el cambio y, por consiguiente, da como resultado, por término medio, que únicamente se cambien [K/N] elementos.
La Figura 1 muestra un ejemplo de la metodología anterior que representa una creación de un espacio de función de troceo consistente con el software, interpretado de acuerdo con una realización de la presente invención. La representación representa cuatro nodos físicos designados A, B, C y D y réplicas de los nodos A y D. Esta configuración se utiliza a continuación para crear un espacio de función de troceo consistente. Para cada nodo activo y disponible de las seis entidades representadas en esta representación, 1 a 6, se creó un ID de nodo virtual (Vid), y se estableció una lista ordenada L de los valores de función de troceo de los V<id>.
La Figura 2 ilustra la red presentada en la Figura 1, en donde se representa un ejemplo de resolución de búsqueda para una función de troceo consistente en software, usando una clave arbitraria K.
La Figura 3 muestra un ejemplo de la resolución de búsqueda para la función de troceo consistente en software sobre una clave arbitraria K mostrada en la Figura 2, tras un fallo del nodo C,1. Evidentemente, como podrían apreciar los expertos en la materia, un proceso de este tipo como el de las Figuras 2 y 3,mutatis mutandispuede llevarse a cabo para cada uno de los nodos que experimente un cambio (adición, retirada, fallos múltiples).
A la vista de lo anterior, la presente invención busca proporcionar una solución para casos adicionales cuyo objetivo sea implementar de forma efectiva una versión escalable del algoritmo usando una NPU (unidad de procesamiento de red) de modo que un único PNC o incluso agrupaciones de NPC trabajando conjuntamente, puedan operar en consecuencia. Resolver estos problemas tiene una serie de ventajas evidentes. Por nombrar sólo unas pocas, un mejor escalado global (desde servidores que pueden manejar decenas de Gb/s a pequeños centenares de Gb/s, hasta NCP que pueden manejar desde 4 Tb a muchos cientos de Tb/s a tasa de línea); un mejor espacio general, y eficiencia energética; un mejor rendimiento de búsqueda (O(1) de búsqueda de hardware); un mejor rendimiento de equilibrio de carga general (procesamiento de paquetes usando hardware); y una mejor tasa de mitigación de fallos / cambios global.
Para alcanzar una solución al desafío anterior, hay que abordar los dos problemas siguientes. En primer lugar, cómo representar el espacio de función de troceo consistente en una NPU y, en segundo lugar, cómo implementar la función de búsqueda en una NPU.
La solución encontrada fue implementar un reenvío de paquetes basado en la búsqueda del ID de destino (el siguiente nodo) usando una clave construida a partir de los metadatos del paquete (principalmente las cabeceras de interconexión en red). La búsqueda de esa clave se realiza dentro de una memoria de búsqueda rápida (TCAM física o algorítmica [una memoria de contenido direccionable]), dando como resultado un ID de destino respectivo.
El espacio de rutas posibles se compone de las subredes / prefijos de interconexión en red (siendo de facto una lista ordenada) mientras que la función de búsqueda se basa en una LPM (coincidencia de prefijo más largo). Por lo tanto, una de las ventajas de la presente invención es que proporciona un vínculo lógico entre una búsqueda del siguiente miembro de anillo de función de troceo consistente más cercano y la operación de la coincidencia de prefijo más largo (LPM).
Sin embargo, en un caso de función de troceo consistente, como es el caso del problema que esta realización de la presente invención busca resolver, la solución propuesta es garantizar que se conserva la misma función de búsqueda (LPM), pero el espacio se construye de forma diferente, es decir, usando los posibles V id como prefijos.
Adoptar este enfoque permite implementar un mecanismo general de procesamiento de paquetes para resolver el problema, logrando todos los aspectos mencionados sin necesidad de emplear ningún mecanismo de hardware especial. La búsqueda de Nid se realiza inmediatamente por hardware a una tasa de línea para todos los ID de nodo posibles.
Para mitigar un fallo, cada entrada de V id da como resultado una entrada de V id primaria (es decir, el propio nodo) y de respaldo. Esto se maneja usando un hardware similar a la implementación de un mecanismo de FRR (reenrutamiento rápido). La retirada o adición de nodos se maneja como adición o retirada (operaciones atómicas) de nodos en una ruta. En otras palabras, se puede considerar el mecanismo descrito anteriormente en el presente documento como un uso no trivial del mecanismo de FRR (re-enrutamiento rápido) para implementar el tratamiento de nodo en el que se ha producido un cambio. Para ello, se usa un puntero de destino primario y un puntero de destino de respaldo, y una vez que el puntero de destino deja de funcionar, el puntero de destino de respaldo se usa para apuntar (es decir, identificar) al siguiente miembro válido del anillo.
De forma similar a la Figura 1, la Figura 4 muestra un ejemplo de una representación de red de red que comprende unidades de procesamiento de red (NPU), para la creación de un espacio de función de troceo consistente en software, interpretado de acuerdo con una realización de la presente invención. La representación comprende cuatro NPU físicas designadas A, B, C y D y las respectivas réplicas de las NPU A y D, para crear un espacio de función de troceo consistente. Para cada entrada de TCAM de una NPU/réplica representada en esta representación, 1 a 6, se creó un ID de nodo virtual primario y un ID de nodo virtual de respaldo (V<id>). En esta figura se muestra una lista ordenada L de los valores de función de troceo de los V id primarios y los V id de respaldo.
La Figura 5 ilustra la red presentada en la Figura 1, en donde se representa un ejemplo de resolución de búsqueda para una función de troceo consistente asistida por NPU, usando una clave arbitraria K.
La Figura 6 muestra un ejemplo de resolución de búsqueda para la función de troceo consistente asistida por NPU en una clave arbitraria K presente en la Figura 5, tras un fallo de la NPU C,1.
De acuerdo con otra realización de la presente divulgación ilustrada en la Figura 7, el método proporcionado comprende además una etapa de implementación de una pluralidad de diferentes grupos de equilibrio de carga como tablas de VRF (enrutamiento y reenvío virtual), que, a su vez, se usan como parámetro mientras se lleva a cabo la búsqueda del algoritmo de LPM, creando de esta manera un espacio de función de troceo consistente especializado para su uso como espacio de ruta para transportar tráfico en la red de comunicación. La expresión "grupo de equilibrio de carga", como se usa a través de toda la memoria descriptiva y las reivindicaciones, se usa para indicar un conjunto de destinos específicos para un cierto subconjunto de las claves. Preferentemente, este etapa se lleva a cabo implementando la técnica descrita anteriormente (es decir, generando una estructura de anillo de función de troceo consistente) para cada uno de estos grupos de equilibrio de carga.
La Figura 8 ejemplifica una resolución de búsqueda para una función de troceo consistente en software. Después de afectar a una clasificación de paquetes, los diferentes grupos de equilibrio de carga se usan como tablas de VRF (enrutamiento y reenvío virtual) mientras se lleva a cabo una búsqueda de algoritmo de LPM. Los resultados de la búsqueda de algoritmo de LPM se usan en la creación de un espacio de función de troceo especializado consistente que, a su vez, puede usarse como espacio de rutas para transportar el tráfico en la red de comunicación.
Una de las ventajas de este aspecto de la invención es que los grupos de equilibrio de carga se implementan en un software después determinar cuál es el paquete de comunicación (es decir, la clasificación de paquetes), y, a continuación, seleccionar el anillo apropiado y buscar allí. Si un destino de paquete se comparte entre más de un anillo, en caso de fallo del nodo que es el destino compartido, todos los anillos tendrán que actualizarse con respecto al cambio que se produjo para superar ese fallo de nodo (qué siguiente salto se seleccionó).
Usando la red de NPU novedosa descrita anteriormente en el presente documento, la clasificación de paquetes se lleva a cabo usando hardware (HW), e inmediatamente después, mientras se sigue usando la misma memoria (ya que la clasificación de paquetes permite obtener el parámetro de VRF respectivo), la entrada apropiada se deriva del grupo de VRF / equilibrio de carga adecuado. Si falla una NPU de destino que se comparte por más de un anillo, el mecanismo de HW actualizará cada entrada que incluya esa NPU con la NPU que sea la NPU de respaldo para la NPU que falla.
La presente invención se ha descrito usando descripciones detalladas de realizaciones de la misma que se proporcionan a modo de ejemplo y no pretenden limitar el alcance de la invención de ninguna manera.
El alcance de la invención está limitado únicamente por las siguientes reivindicaciones.

Claims (7)

REIVINDICACIONES
1. Un método para su uso en una red de comunicación, en donde dicho método comprende las etapas de:
(i) proporcionar una pluralidad de unidades de procesamiento de red, NPU, (A-D) comprendidas en dicha red de comunicación;
y en donde dicho método está caracterizado por que comprende además las siguientes etapas:
(ii) establecer una replicación de al menos una de dicha pluralidad de unidades de procesamiento de red (A,2 D,2); (iii) disponer la pluralidad de unidades de procesamiento de red y la al menos una replicación, en una configuración de anillo virtual;
(iv) asociar una identificación virtual primaria única y una identificación virtual de respaldo única correspondiente con cada unidad de procesamiento de red activa y disponible (H(A,1), H(B,1), H(C,1), H(D,1)) y la al menos una replicación (H(A,2), H(D,2));
(v) establecer una lista de valores de función de troceo, asociados con las identificaciones virtuales primarias de dichas unidades de procesamiento de red activas y disponibles y valores de función de troceo asociados con la identificación virtual de respaldo de las correspondientes unidades de procesamiento de red activas y disponibles (H(A,2), (H(D,1), H(A,1), H(C,1), H(D,2), H(B,1));
(vi) implementar un algoritmo de función de troceo consistente en anillo para llevar a cabo una resolución de búsqueda de una función de troceo consistente (K, H(K)); y
(vii) en caso de cambio de al menos una de las unidades de procesamiento de red activas y disponibles que tenga una cierta identificación virtual primaria única (H(C,1)), usar la correspondiente identificación virtual de respaldo (H(D,2)) para mantener la continuidad del anillo.
2. El método de acuerdo con la reivindicación 1, en donde la resolución de la búsqueda para una función de troceo consistente se lleva a cabo basándose en la búsqueda de ID de destino de paquete usando una clave construida a partir de los metadatos de dicho paquete.
3. El método de acuerdo con la reivindicación 2, en donde los metadatos del paquete se derivan de las cabeceras de interconexión en red del paquete.
4. El método de acuerdo con la reivindicación 2, en donde la resolución de búsqueda para una función de troceo consistente se hace recuperando un ID de destino respectivo mientras se usa un algoritmo de memoria direccionable de contenido ternario, TCAM.
5. El método de acuerdo con la reivindicación 2, en donde comprende además una etapa de composición de un espacio de rutas de las subredes y/o prefijos de interconexión en red, y en donde una función de búsqueda se basa en un algoritmo de coincidencia de prefijo más largo, LPM.
6. El método de acuerdo con la reivindicación 5, en donde se conserva la misma función de búsqueda de LPM, y el espacio de ruta se construye usando posibles identificaciones virtuales como prefijos.
7. El método de acuerdo con la reivindicación 1, en donde la resolución de la búsqueda para una función de troceo consistente se lleva a cabo basándose en la búsqueda de ID de destino de paquete usando una clave construida a partir de los metadatos de dicho paquete,
en donde dicho método comprende además una etapa de composición de un espacio de rutas de las subredes y/o prefijos de interconexión en red, y en donde una función de búsqueda se basa en un algoritmo de coincidencia de prefijo más largo, LPM, y
en donde dicho método comprende además una etapa de utilización de diferentes grupos de equilibrio de carga como tablas de enrutamiento y reenvío virtual, VRF, que, a su vez, se usan como parámetros mientras se llevan a cabo las búsquedas de algoritmo de LPM, permitiendo de esta manera la generación de un espacio de función de troceo consistente especializado para usar como espacio de ruta para el transporte de tráfico en la red de comunicación.
ES21152734T 2021-01-19 2021-01-21 A method for implementing a consistent hashing in a communication network Active ES3020007T3 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US17/151,882 US11496395B2 (en) 2021-01-19 2021-01-19 Method for implementing a consistent hashing in a communication network

Publications (1)

Publication Number Publication Date
ES3020007T3 true ES3020007T3 (en) 2025-05-21

Family

ID=74205620

Family Applications (1)

Application Number Title Priority Date Filing Date
ES21152734T Active ES3020007T3 (en) 2021-01-19 2021-01-21 A method for implementing a consistent hashing in a communication network

Country Status (9)

Country Link
US (1) US11496395B2 (es)
EP (1) EP4030702B1 (es)
JP (1) JP2022111013A (es)
DK (1) DK4030702T3 (es)
ES (1) ES3020007T3 (es)
HR (1) HRP20250362T1 (es)
HU (1) HUE070871T2 (es)
PL (1) PL4030702T3 (es)
PT (1) PT4030702T (es)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11706193B2 (en) * 2021-08-09 2023-07-18 Juniper Networks, Inc. Intelligent flow state synchronization to improve resiliency, availability, and/or performance of redundant network security devices
CN115297131B (zh) * 2022-08-01 2023-05-26 东北大学 一种基于一致性哈希的敏感数据分布式储存方法
CN115883564B (zh) * 2023-02-21 2023-05-23 青岛创新奇智科技集团股份有限公司 一种媒体流处理方法、装置、电子设备及存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE413765T1 (de) 2006-07-07 2008-11-15 Alcatel Lucent Verteilter hashing-mechanismus für selbstorganisierende netzwerke
US9444737B2 (en) * 2009-04-27 2016-09-13 Intel Corporation Packet data processor in a communications processor architecture
US9489827B2 (en) * 2012-03-12 2016-11-08 Cisco Technology, Inc. System and method for distributing content in a video surveillance network
US9628438B2 (en) 2012-04-06 2017-04-18 Exablox Consistent ring namespaces facilitating data storage and organization in network infrastructures
US10761758B2 (en) * 2015-12-21 2020-09-01 Quantum Corporation Data aware deduplication object storage (DADOS)
US9979648B1 (en) 2015-12-28 2018-05-22 Amazon Technologies, Inc. Increasing entropy across routing table segments
US11539622B2 (en) * 2020-05-04 2022-12-27 Mellanox Technologies, Ltd. Dynamically-optimized hash-based packet classifier

Also Published As

Publication number Publication date
HUE070871T2 (hu) 2025-07-28
US11496395B2 (en) 2022-11-08
US20220231947A1 (en) 2022-07-21
DK4030702T3 (da) 2025-03-17
EP4030702A1 (en) 2022-07-20
PL4030702T3 (pl) 2025-06-23
HRP20250362T1 (hr) 2025-05-09
JP2022111013A (ja) 2022-07-29
EP4030702B1 (en) 2025-02-26
PT4030702T (pt) 2025-03-14

Similar Documents

Publication Publication Date Title
ES3020007T3 (en) A method for implementing a consistent hashing in a communication network
JP6578416B2 (ja) エニーキャストデータトラフィックをロードバランシングするための方法およびシステム
US9692695B2 (en) Techniques for aggregating hardware routing resources in a multi-packet processor networking system
US9569561B2 (en) Label masked addressable memory
US10491522B2 (en) Data plane integration
US20140258485A1 (en) Efficient handling of multi-destination traffic in an internet protocol fabric data center
Chiesa et al. On the resiliency of randomized routing against multiple edge failures
Pandurangan et al. DEX: self-healing expanders
US20110202682A1 (en) Network structure for data center unit interconnection
Camarero et al. Random folded Clos topologies for datacenter networks
Supittayapornpong et al. Optimal oblivious routing for structured networks
US9276771B1 (en) Lossless multipath table compression
van den Akker et al. Short paper: Towards 2-resilient local failover in destination-based routing
Kayaturan et al. Routing in hexagonal computer networks: How to present paths by bloom filters without false positives
CN113938434A (zh) 大规模高性能RoCEv2网络构建方法和系统
IL280293B1 (en) A Method for Implementing a Consistent Hashing in a Communication Network
Camarero et al. On random wiring in practicable folded Clos networks for modern datacenters
Chitavisutthivong et al. Optimal oblivious routing with concave objectives for structured networks
US20220166746A1 (en) Pattern matching by a network device for domain names with wildcard characters
Sen et al. Marques: Distributed multi-attribute range query solution using space filling curve on dths
Camarero Coterillo et al. On random wiring in practicable folded clos networks for modern datacenters
Higuchi et al. A Load Balancing Method for Distributed Key-Value Store Based on Order Preserving Linear Hashing and Skip Graph
Huang et al. Fast data dissemination in Kautz-based modular datacenter network
Cortés et al. Free Split: A Write-Ahead Protocol to Improve Latency in Distributed Prefix Tree Indexing Structures
Higuchi et al. Performance evaluation of routing algorithms for distributed key-value store based on order preserving linear hashing and Skip graph