You are on page 1of 26

Sistemas Punto-a-Punto

Contenido
Introducción
Objetivos
Caracteristicas
Aplicaciones
Generaciones
● 1G Napster

● 2G Gnutella, Skype, Bittorrent

● 3G Pastry, Tapestry (Middleware)


Introducción

Los datos y recursos computacionales son aportados


por muchos hosts en Internet, todos los cuales
participan en la prestación de un servicio uniforme.
Tienen la capacidad de compartir recursos
computacionales, almacenamiento y datos presentes
"en los bordes de la Internet".
Son más efectivos cuando se usan para almacenar
colecciones muy grandes de datos inmutables.
Objetivos

Permitir el intercambio de datos y recursos a una


escala muy grande eliminando cualquier
requerimiento de servidores gestionados por
separado y su infraestructura asociada.
Características

Su diseño garantiza que cada usuario proporciona sus recursos al


sistema.
A pesar de que pueden diferir en los recursos, todos los nodos de un
sistema peer-to-peer tiene las mismas capacidades y
responsabilidades.
Su correcto funcionamiento no depende de la existencia de cualquier
forma centralizada de sistemas de administración.
Pueden ser diseñados para ofrecer un grado limitado de anonimato a
los proveedores y usuarios de los recursos .
La clave para su buen funcionamiento es la elección de los algoritmos
para la colocación de datos a través de muchos anfitriones y el posterior
acceso a los mismos.
Aplicaciones

Intercambio y búsqueda de archivos


● Napster, BitTorrent, eDonkey, Gnutella
Voz
● Skype, VoIP
Sistemas de archivos distribuidos
● Freenet, CFS
Conectividad
● Redes ad hoc
Generaciones

1ra Generación: Servicio de intercambio de música.


Napster
2da Generación: Aplicaciones de archivos compartidos.
Freenet [Clarke et al. 2000, freenetproject.org],
Gnutella, Kazaa [Leibowitz et al. 2003] y
BitTorrent [Cohen 2003].
3ra Generación: capas middleware para administración de
recursos distribuidos.
Pastry [Rowstron and Druschel 2001],
Tapestry [Zhao et al. 2004],
CAN [Ratnasamy et al. 2001],
Chord [Stoica et al. 2001] y
Kademlia [Maymounkov and Mazieres 2002].
Napster: archivos compartidos peer-to-peer con un índice centralizado y
replicado

Limitaciones: Dependencia de la aplicación


● Consistencia entre réplicas ● Archivos no se actualizaban
● Disponibilidad no garantizada
Napster: Características

∙Servidores de índices
∙ Índices unificados para cada archivo

∙ Varios servidores replicados (requisitos de


consistencia mínimos)
∙ Cuello de botella / incoherencias

∙Localidad en la red

∙ No de saltos (hops) entre el cliente y el servidor de

archivos
∙ Se asignan servidores lo más cercanos al cliente

∙ Este mecanismo sencillo de distribución de carga

da al servicio un alto grado de escalabilidad


∙Diseño fundado en archivos de música

∙ Los archivos nunca se actualizan

∙ La disponibilidad no es una prioridad


Elementos Claves en el protocolo Gnutella

∙ Ultrapeer: nodo “principal” con nodos hojas


∙ QRP (Query Routing Protocol): reducir número de consultas sobre los nodos.
∙ QRT (queryng Routing Table). El valor contenido equivale al contenido del archivo. Ejem “Cap 10 en P2P”
puede equivaler a < 65,47,09,76>
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Skype
BitTorrent

Protocolo P2P para compartir archivos de gran


tamaño
– Fundamentalmente archivos multimedia
– Diseñado por Bram Cohen [2001]
– Más de 150 millones de usuarios activos en 2012
–Entre el 43 y el 70% del tráfico en Internet (2009) se debe a redes P2P
(principalmente BitTorrent) 1

∙ Cliente BitTorrent
–Cualquier programa que implemente el protocolo BitTorrent
–Capaz de preparar, transmitir y solicitar cualquier archivo
– Peer: cualquier computador con una instancia de cliente
BitTorrent

∙El manejo de archivos grandes se hace dividiéndolos


en trozos (chunks) de igual tamaño (64KB – 4MB)
∙Los clientes pueden descargar varios chunks en

paralelo desde diferentes sitios


∙archivo torrent: resumen de un archivo compartido

– Nombre y longitud
– URL del tracker: servidor centralizado requerido que
coordina la distribución del archivo
– Checksum de cada chunk, obtenido mediante un algoritmo
de encriptado (típicamente, SHA-1)
3G: Middleware P2P

∙ Plataforma para el acceso rápido a recursos en


la red, en un entorno totalmente
descentralizado; en vez de usar algoritmos y
protocolos específicos (1G) o sólo
parcialmente descentralizados (1G, 2G)
Capa Intermedia Punto-a-Punto

Requerimientos Funcionales:
● Simplificación de servicios
● Habilidad en la localización de recursos
● Interfaz de programación sencilla
Requerimientos no Funcionales
● Escalabilidad Gobal: explotación de recursos de hardware
de la internet
● Distribución blanceada de la carga
● Optimización de interaciones locales entre los puntos
vecinos
● Capacidad de disponibilidad dinámica de repositorios
● Seguridad de los datos en ambientes heterogéneos
● El anonimato, la negación y la resistencia a la censura
Distribución de la información en enrutamientos superpuestos

● Enrutar las solicitudes a los objetos


● Agregar objetos (GUID, para identificar nodos)
● Borrar objetos
● Adicionar y Remover nodos
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Comparativa enrutamiento: IP vs superposición P2P

IP Overlay
Escala IPv4 está limitado a 232 nodos El espacio de nombres GUID es muy grande y
direccionables. El espacio de nombres plano (> 2128), lo que le permite estar mucho
IPv6 es mucho más generoso (2128). más ocupado.
Estructura jerárquica.
Balance de carga Las cargas en los routers están Las ubicaciones de los objetos pueden ser
determinadas por la topología de la red y asignadas al azar y, por lo tanto, los patrones
los patrones de tráfico asociados. de tráfico están divorciados de la topología de
la red.
Dinámica de red Las tablas de enrutamiento IP se Las tablas de enrutamiento se pueden
actualizan asincrónicamente en base de un actualizar de forma síncrona o asincrónica con
mejor esfuerzo con constantes de tiempo retornos de fracciones de segundo.
en el orden de 1 hora.
Tolerancia a La redundancia está diseñada en la red IP por Las rutas y referencias a objetos pueden ser
fallos sus gestores, garantizando la tolerancia de un replicadas n veces, asegurando la tolerancia
único enrutador o fallo de conectividad de red. de n fallas de nodos o conexiones.
La replicación es costosa.

Identificación del Cada dirección IP se asigna exactamente a Los mensajes se pueden enrutar a la réplica
objetivo un nodo objetivo. más cercana de un objeto de destino.
Seguridad y El direccionamiento sólo es seguro cuando La seguridad se puede lograr incluso en
Anonimato se confía en todos los nodos. El anonimato entornos con una confianza limitada. Se
para los propietarios de direcciones no es puede proporcionar un grado limitado de
alcanzable. anonimato.
Interfaz de programación básica para una tabla hash distribuida (DHT)
como esta implementada en PAST API sobre Pastry

put(GUID, data)
The data is stored in replicas at all nodes responsible for the object
identified by GUID.

remove(GUID)
Deletes all references to GUID and the associated data.

value = get(GUID)
The data associated with GUID is retrieved from one of the nodes
responsible it.

GUID- global unique ID

Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Caso de Estudio: PASTRY

PASTRY es una infraestructura de enrutamiento


de mensajes
● PAST es un sistema de almacenamiento de

archivos implementado como una tabla hash


distribuida, y
● Squirrel, un servicio de almacenamiento web

peer-to-peer
Caso de Estudio: PASTRY

● Los objetos tienen asignado un GUID de 128 bits


● En una red de N participantes, el algoritmo de
enrutamiento, enruta un mensaje en O(logN) pasos
● Los nodos activos son responsables de procesar las
solicitudes dirigidas a los objetos en su vecindario
● Los pasos de enrutamiento involucran el uso de un
protocolo de transporte (usualmente UDP)
● Algoritmo de enrutamiento se explica en dos fases, a
continuación
Fase I- Solo enrutamiento circular es correcto pero ineficiente
Based on Rowstron and Druschel [2001]

Cada nodo guarda un conjunto de


hojas (l encima y l por debajo con
vector L) que contiene GUID e IP
de los nodos cercanos
numéricamente

Los puntos representan los nodos


vivos. El espacio se considera
como circular: nodo 0 es adyacente
al nodo (2128-1 ). El diagrama ilustra
el enrutamiento de un mensaje
desde el nodo 65A1FC a D46A1C
usando sólo la información del
conjunto de hojas, asumiendo
conjuntos de hojas de tamaño 8
(l = 4 ) . Este enrutamiento requiere
de ~ N/2l pasos para distribuir
mensaje; no se utiliza en la práctica

Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Fase II: primera cuatro filas de una tabla de enrutamiento de Pastry

La tabla de enrutamiento se encuentra en un nodo cuyo GUID comienza 65A1. Los dígitos están en
hexadecimal. El n’s representa par [GUID, IP address] que especifique el siguiente salto que deberá adoptar
los mensajes dirigidos a los GUID que responden a ese prefijo. Entradas en gris indican los prefijos que
corresponden con el GUID actualen los valores dados de p: la siguiente fila hacia abajo o el conjunto de la
hoja debe ser examinada para encontrar una ruta. Aunque hay un máximo de 128 filas de la tabla , sólo log16
N filas estarán poblados en promedio en una red con N nodos activos .
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Fase II: ejemplo de enrutamiento Pastry Basado en Rowstron and Druschel [2001]

Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Fase II: algoritmo de enrutamiento Pastry

Para manejar un mensaje M se dirigió a un nodo D (donde R [ p , i ] es el elemento en la


columna i, p fila de la tabla de enrutamiento ) :
1. Si ( L - l < D < Ll ) { //establece si el destino está dentro de la hoja, o es el nodo actual
.
2. Dirigir M al elemento de Li de la hoja de conjunto con GUID más cercano a D o
al nodo actual A.
3. } else { // usa la tabla de enrutamiento para despachar M a un nodo con un GUID
cercano
4. Búsqueda p, la longitud del prefijo común más larga de D y A,. i , el ( p + 1)esimo
dígito hexadecimal de D.
5. Si ( R [ p , i ] ≠ nulo) dirigir M hacia R [ p , i ] // enrutar M a un nodo
con el prefijo común más largo.
6. else { // no hay ninguna entrada en la tabla de enrutamiento .
7. Avance M a cualquier nodo en L o R con un prefijo común de longitud p , con
una GUID que es numéricamente más cerca .
}
}

Pasos 1,2,7 es la fase I


Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Interfaz de programación básica para ubicación y enrutamientos de
objetos distribuidos (DOLR) como se implementa en Tapestry

publish(GUID)
GUID can be computed from the object (or some part of it, e.g. its
name). This function makes the node performing a publish operation the
host for the object corresponding to GUID.

unpublish(GUID)
Makes the object corresponding to GUID inaccessible.

sendToObj(msg, GUID, [n])


Following the object-oriented paradigm, an invocation message is sent to
an object in order to access it. This might be a request to open a TCP
connection for data transfer or to return a message containing all or part
of the object’s state. The final optional parameter [n], if present, requests
the delivery of the same message to n replicas of the object.
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Caso de Estudio: enrutamiento Tapestry From [Zhao et al. 2004]

Réplicas del archivo Phil”sBook (G = 4378 ) se alojan en los nodos 4228 y AA93. Nodo
4377 es el nodo raíz para el objeto 4378. El enrutamiento Tapestry se muestran en
algunas de las entradas de las tablas de enrutamiento. Las rutas de publicación
muestran rutas que siguen los mensajes publicar el que se establecen el caché de
asignaciones de ubicación para el objeto 4378. Las asignaciones de ubicación se
utilizan posteriormente para encaminar Los mensajes enviados a 4378 .
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012

You might also like