Вы находитесь на странице: 1из 19

Sistemas Punto-a-Punto

( Peer-to-Peer Systems )

Sistemas Punto-a-Punto: Caractersticas

Su diseo garantiza que cada usuario contribuye recursos al


sistema .
A pesar de que pueden diferir en los recursos contribuyen,
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 administracin.

Pueden ser diseados para ofrecer un grado limitado de


anonimato a los proveedores y usuarios de los recursos .
Una cuestin clave para su buen funcionamiento es la
eleccin de un algoritmo para la colocacin de datos a travs
de muchos anfitriones y el posterior acceso

Sistemas Punto-a-Punto: Generaciones

1-era Generacin: Servicio de intercambio de msica


Napster
2-da Generacin: Aplicaciones de archivos
compartidos, Freenet [Clarke et al. 2000,
freenetproject.org], Gnutella, Kazaa [Leibowitz et al.
2003] y BitTorrent [Cohen 2003].
3-era Generacin: capas middleware para
administracuin de recursos distribuidos, Pastry
[Rowstron and Druschel 2001], Tapestry [Zhao et al.
2004], CAN [Ratnasamy et al. 2001], Chord [Stoica et
al. 2001] and Kademlia [Maymounkov and Mazieres
2002].

Napster: archivos compartidos peer-to-peer con un ndice centralizado y


replicado
peers

Napster server
Index
1. File location
request
2. List of peers
offering the file
5. Index update

Limitaciones:

Consistencia entre
rplicas

Napster server
Index
3. File request

4. File delivered

Dependencia de la aplicacin

Archivos no se actualizaban

Disponibilidad no garantizada

Sistemas Punto-a-Punto: Capa Intermedia

Requerimientos Funcionales:

simplificacin de servicios
Habilidad en la localizacin de recursos
Intefaz de programacin sencilla

Requerimientos no Funcionales

Escalabilidad Gobal
Balanceo de carga
Optimizacin de interaciones locale entre los puntos
vecinos
Capacidad alta para la disponibilidad dinamica de host
Seguridad de los datos en ambientes heterogneos
El anonimato, la negacin y la resistencia a la censura

Distribucin de la informacin en enrutamientos superpuestos


As routing knowledge Ds routing knowledge

A
D

B
Object:
Node:

Bs routing knowledge

Cs routing knowledge

Instructors Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
Pearson Education 2012

Tareas en enrutamientos superpuestos

Enrutar las solicitudes de objetos


Agregar objetos
Borrar objetos
Adicionar y Remover nodos

Interfaz de programacin bsica 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

Instructors Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
Pearson Education 2012

Interfaz de programacin bsica para ubicacin 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 objects state. The final optional parameter [n], if present, requests
the delivery of the same message to n replicas of the object.
Instructors 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 desplegados en varias
aplicaciones:

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
continuacin

Fase I- Solo enrutamiento circular es correcto pero ineficiente


Based on Rowstron and Druschel [2001]

0 FFFFF....F (2 128-1)

D471F1

Cada nodo guarda un conjunto de


hojas (l encim a y l por debajo con
vector L) que contiene GUID e IP
de los nodos cercanos

D467C4
D46A1C

D13DA3

65A1FC

Los puntos representan los nodos


vivos. El espacio se considera
como circular: nodo 0 es adyacente
al nodo (2^2128-1 ). El diagrama
ilustra el enrutamiento de un
mensaje desde el nodo 65A1FC a
D46A1C usando solo la informacin
del conjunto de hojas, asumiendo
conjuntos de hojas de tamao 8
(l = 4 ) . Este enrutamiento requiere
de ~ N/2l pasos para distribuir
mensaje; no se utiliza en la prctica

Instructors Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
Pearson Education 2012

Fase II: primera cuatro flas de una tabla de enrutamiento de Pastry

La tabla de enrutamiento se encuentra en un nodo cuyo GUID comienza 65A1. Los dgitos estn en
hexadecimal. El ns 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 mximo de 128 filas de la tabla , slo
log16 N filas estarn poblados en promedio en una red con N nodos activos .
Instructors 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]

Routing a message from node 65A1FC to D46A1C.


With the aid of a well-populated routing table the
message can be delivered in ~ log16 (N ) hops.

0 FFFFF....F (2 128-1)

D471F1
D46A1C

D467C4
D462BA
D4213F

D13DA3

65A1FC

Instructors 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 ) { // el destino est dentro de la hoja establecer o es el nodo actual .
2.
Dirigir M al elemento de Li de la hoja de conjunto con GUID ms cercano a D o
al nodo actual A.
3. } else { // utilizar la tabla de enrutamiento para despachar M a un nodo con un GUID
ms cerca
4.
Bsqueda p, la longitud del prefijo comn ms larga de D y A ,. i , el ( p + 1)esimo
dgito hexadecimal de D.
5.
Si ( R [ p , i ] nulo) dirigir M hacia adelante a R [ p , i ] // enrutar M a un nodo
con un prefijo ms largo comn.
6.
else { // no hay ninguna entrada en la tabla de enrutamiento .
7.
Avance M a cualquier nodo en L o R con un prefijo comn de longitud p , con
una GUID que es numricamente ms cerca .
}
}

Pasos 1,2,7 es la fase I


Instructors 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 ) { // el destino est dentro de la hoja establecer o es el nodo actual .
2.
Dirigir M al elemento de Li de la hoja de conjunto con GUID ms cercano a D o
al nodo actual A.
3. } else { // utilizar la tabla de enrutamiento para despachar M a un nodo con un GUID
ms cerca
4.
Bsqueda p, la longitud del prefijo comn ms larga de D y A ,. i , el ( p + 1)esimo
dgito hexadecimal de D.
5.
Si ( R [ p , i ] nulo) dirigir M hacia adelante a R [ p , i ] // enrutar M a un nodo
con un prefijo ms largo comn.
6.
else { // no hay ninguna entrada en la tabla de enrutamiento .
7.
Avance M a cualquier nodo en L o R con un prefijo comn de longitud p , con
una GUID que es numricamente ms cerca .
}
}

Pasos 1,2,7 es la fase I


Instructors 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]

4377 (Root for 4378)


Tapestry routings
for 4377
publish path

Location mapping
for 4378

437A

43FE
4228
4378
Phils
Books

4361
4664
4A6D

4B4F
Routes actually
taken by send(4378)

E791

57EC

AA93

4378
Phils
Books

Rplicas del archivo Phil Libros (G = 4378 ) se alojan en los nodos 4228 y AA93. Nodo
4377 es el nodo raz para el objeto 4378. El enrutamiento Tapestry se muestran en
algunas de las entradas de las tablas de enrutamiento. Las rutas de publicacin
muestran rutas que siguen los mensajes publicar el que se establecen elcach de
asignaciones de ubicacin para el objeto 4378. Las asignaciones de ubicacin se
utilizan posteriormente para encaminar Los mensajes enviados a 4378 .
Instructors Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
Pearson Education 2012

Caso Estudio :Elementos Claves en el protocolo Gnutella

QRP: reducir nmero de consultas sobre los nodos


Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design
QRT: queryng Routing Instructors
Table.
Pearson Education 2012

Edn. 5

21

Asignacin

Describa paso a paso la incorporacin de un nuevo


Host en una red Pastry.

Describa como se construye la tabla de


enrutamiento de un nuevo Host en la red Pastry

Cual es el uso que hace la red Pastry del algoritmo


del vecino ms cercano?

Ejercicios: 10.8 , 10.9

Вам также может понравиться