stringtranslate.com

Red direccionable por contenido

La red direccionable por contenido ( CAN ) es una infraestructura P2P descentralizada y distribuida que proporciona una funcionalidad de tabla hash a una escala similar a la de Internet . CAN fue una de las cuatro propuestas originales de tabla hash distribuida , introducida simultáneamente con Chord , Pastry y Tapestry .

Descripción general

Al igual que otras tablas hash distribuidas, CAN está diseñada para ser escalable , tolerante a fallas y autoorganizada . El diseño arquitectónico es un espacio de coordenadas cartesiano multidimensional virtual , un tipo de red superpuesta , sobre un toro multidimensional . Este espacio de coordenadas n -dimensional es una dirección lógica virtual , completamente independiente de la ubicación física y la conectividad física de los nodos. Los puntos dentro del espacio se identifican con coordenadas. Todo el espacio de coordenadas se divide dinámicamente entre todos los nodos del sistema de modo que cada nodo posee al menos una zona distinta dentro del espacio general. [1]

Enrutamiento

Un nodo CAN mantiene una tabla de enrutamiento que contiene la dirección IP y la zona de coordenadas virtuales de cada uno de sus vecinos. Un nodo enruta un mensaje hacia un punto de destino en el espacio de coordenadas. El nodo primero determina qué zona vecina está más cerca del punto de destino y luego busca la dirección IP del nodo de esa zona a través de la tabla de enrutamiento. [1]

Unión de nodos

Para unirse a un CAN, un nodo que se une debe:

  1. Encuentre un nodo que ya esté en la red superpuesta.
  2. Identificar una zona que se pueda dividir
  3. Actualice las tablas de enrutamiento de los nodos vecinos a la zona recién dividida. [1]

Para encontrar un nodo que ya está en la red superpuesta, se pueden usar nodos de arranque para informar al nodo que se une las direcciones IP de los nodos que se encuentran actualmente en la red superpuesta. [1]

Una vez que el nodo que se une recibe una dirección IP de un nodo que ya está en la red CAN, puede intentar identificar una zona para sí mismo. El nodo que se une elige aleatoriamente un punto en el espacio de coordenadas y envía una solicitud de unión, dirigida al punto aleatorio, a una de las direcciones IP recibidas. Los nodos que ya están en la red superpuesta envían la solicitud de unión al dispositivo correcto a través de sus tablas de enrutamiento de zona a IP. Una vez que el nodo que administra la zona del punto de destino recibe la solicitud de unión, puede respetarla dividiendo su zona en dos, asignándose la primera mitad a sí mismo y asignando la segunda mitad al nodo que se une. Si no respeta la solicitud de unión, el nodo que se une sigue eligiendo puntos aleatorios en el espacio de coordenadas y enviando solicitudes de unión dirigidas a estos puntos aleatorios hasta que se une con éxito a la red. [1]

Una vez finalizada la división y asignación de zonas, los nodos vecinos se actualizan con las coordenadas de las dos nuevas zonas y las direcciones IP correspondientes. Las tablas de enrutamiento se actualizan y las actualizaciones se propagan por toda la red. [1]

Nodo saliendo

Para gestionar la salida de un nodo, el CAN debe

  1. Identificar que un nodo está saliendo
  2. hacer que la zona del nodo saliente se fusione o sea asumida por un nodo vecino
  3. Actualizar las tablas de enrutamiento en toda la red. [1]

La detección de la salida de un nodo se puede realizar, por ejemplo, mediante mensajes de latido que transmiten periódicamente información de la tabla de enrutamiento entre vecinos. Después de un período predeterminado de silencio de un vecino, se determina que ese nodo vecino ha fallado y se lo considera un nodo que se va. [1] Alternativamente, un nodo que se va voluntariamente puede transmitir dicho aviso a sus vecinos.

Una vez identificado un nodo que se va, su zona debe fusionarse o tomarse el control. Primero se analiza la zona del nodo que se va para determinar si la zona de un nodo vecino puede fusionarse con la zona del nodo que se va para formar una zona válida. Por ejemplo, una zona en un espacio de coordenadas 2D debe ser un cuadrado o un rectángulo y no puede tener forma de L. La prueba de validación puede recorrer todas las zonas vecinas para determinar si puede producirse una fusión exitosa. Si una de las fusiones potenciales se considera válida, las zonas se fusionan. Si ninguna de las fusiones potenciales se considera válida, entonces el nodo vecino con la zona más pequeña toma el control de la zona del nodo que se va. [1] Después de una toma de control, el nodo que toma el control puede intentar periódicamente fusionar sus zonas controladas adicionalmente con las zonas vecinas respectivas.

Si la fusión es exitosa, las tablas de enrutamiento de los nodos de las zonas vecinas se actualizan para reflejar la fusión. La red verá la subsección de la red superpuesta como una sola zona después de una fusión y tratará todo el procesamiento de enrutamiento con esta mentalidad. Para efectuar una toma de control, el nodo de toma de control actualiza las tablas de enrutamiento de los nodos de las zonas vecinas, de modo que las solicitudes a cualquiera de las zonas se resuelvan en el nodo de toma de control. Y, como tal, la red aún ve la subsección de la red superpuesta como dos zonas separadas y trata todo el procesamiento de enrutamiento con esta mentalidad.

Desarrolladores

Sylvia Ratnasamy , Paul Francis, Mark Handley , Richard Karp y Scott Shenker

Véase también

Referencias

  1. ^ abcdefghi Ratnasamy; et al. (2001). "Una red escalable y direccionable por contenido" (PDF) . En Actas de ACM SIGCOMM 2001. Consultado el 20 de mayo de 2013 . {{cite journal}}: Requiere citar revista |journal=( ayuda )