Você está na página 1de 30

Sistemas Operativos Distribuidos

Redes entre Pares


(Peer2Peer)

Alejandro Alonso
Dpto. Ing. de Sistemas Telemticos

(Noviembre 2014) DIT/UPM Redes P2P 1


ndice
1. Introduccin
2. El sistema Napster
3. Software de Intermediacin P2P
4. Pastry: Sw de Intermediacin P2P

(Noviembre 2014) DIT/UPM Redes P2P 2


1. Redes P2P: Introduccin
Permiten compartir datos y recursos a gran escala

Eliminan la necesidad de disponer de servidores


gestionados de forma separada
Costes de administracin y tolerancia a fallos
Ancho de banda a un servidor puede estar limitada

Aplicaciones y servicios distribuidos usando datos y


recursos disponibles en ordenadores personales
Aplicaciones que explotan recursos disponibles en los
extremos de internet:
almacenamiento, ciclos, contenidos, presencia humana

Tcnicas de implementacin de aplicaciones p2p y


aumentar su escalabilidad, fiabilidad y seguridad.
(Noviembre 2014) DIT/UPM Redes P2P 3
Modelo Cliente/Servidor
Recursos disponibles en uno o varios servidores:
WWW (HTTP), FTP, Web Services

Diseo centralizado

Escala del servicio limitado por potencia de servidor y


ancho de banda de redes

Servidor

Cliente Cliente

Internet

Cliente Cliente

(Noviembre 2014) DIT/UPM Redes P2P 4


Caractersticas redes P2P
Los usuarios contribuyen con recursos al sistema

Todos los nodos tienen las mismas capacidades y


responsabilidades
Su operacin no depende de sistemas administrados
de forma centralizada
Pueden ofrecer un cierto grado de anonimato a
proveedores y usuarios de los recursos
Crtico: Algoritmos para asignar y recuperar informacin

Servicios descentralizados, autogarantizados, reparto


de almacenamiento y procesamiento automtico

(Noviembre 2014) DIT/UPM Redes P2P 5


Caractersticas de redes P2P

Par

Par Par

Internet

Par
Par

(Noviembre 2014) DIT/UPM Redes P2P


6
Transferencia de ficheros
Comparativa entre el modelo cliente-servidor y P2P

4,0000
P2P
Client-Server
Minimum Distribution Time

3,0000

2,0000

1,0000

0,0000
0 5 10 15 20 25 30 35
N
(Noviembre 2014) DIT/UPM Redes P2P 7
Algunos Problemas
Recursos voltiles: los usuarios no garantizan que sus
computadores estn operativos.
La disponibilidad de los recursos es impredecible.

Se disean para que la probabilidad de encontrar un


recurso sea pequea
Ms adecuadas para objetos inmutables

(Noviembre 2014) DIT/UPM Redes P2P 8


Evolucin redes P2P
Algunos antecedentes: DNS, Xerox Grapevine registro
de nombres, Lamport algoritmo para consenso
distribuido, sistema de almacenamiento replicado
Bayou
El potencial del P2P se muestra cuando un
significativo nmero de usuarios se conectan a la red.
Tres generaciones:
Napster
Segunda generacin de sistemas de comparticin de ficheros:
Freenet, Gnutella, Kazaa y BitTorrent
Tercera generacin: software de intermediacin para p2p

(Noviembre 2014) DIT/UPM Redes P2P 9


Comparacin de rutas IP y sobrepuestas
IP Enrutado nivel App
Escalado Direcciones estructuradas P2P puede direccionar ms
jerrquicamente, con espacio (GUID) objetos (> 2128) y
preasignado estructura plana
Reparto de carga La carga en enrutadores Posicin de objetos es aleatoria.
determinada por la topologa de red Patrones de trafico separados de
y patrones de trfico topologa
Dinmica de la Tablas actualizadas asncronamente Tablas actualizadas en pocos
red con tiempo de retardo del orden de segundos
1 hora
Tolerancia a Redundancia diseada en la red IP Las rutas y los objetos se pueden
fallos y gestores. Tolerancia a n fallos es replicar
costosa
Identificacin de Cada direccin IP se refiere a un Los mensajes se pueden enviar a
receptores nodo la rplica ms cercana
Seguridad y Seguro, si todos los nodos son Seguridad en entornos con
anonimato fiables. Anonimato no es posible confianza limitada. Se puede
proporcionar algo de anonimato
(Noviembre 2014) DIT/UPM Redes P2P 10
2. El sistema Napster
Descarga de msica: demanda de un servicio de
almacenamiento y recuperacin con carcter global
Napster demostr la viabilidad de las redes P2P:
Varios millones de usuarios registrados
Cientos de miles de transferencias simultneas

La arquitectura de Napster:
ndices de ficheros centralizados
Los usuarios proporcionaban los ficheros, que se almacenaban
en sus computadores: proporcionaban un enlace

Se hizo pblico un conjunto de ficheros a los usuarios

(Noviembre 2014) DIT/UPM Redes P2P 11


El sistema Napster

peers

Napster server Napster server


Index 1. File location Index
request
3. File request
2. List of peers
offering the file
5. Index update
4. File delivered

(Noviembre 2014) DIT/UPM Redes P2P 12


El final de Napster
Se cerr por la denuncia contra los operadores, por los
derechos de autor
Se argument que ellos hicieron el programa. Los usuarios
hacan el intercambio
Pero los servidores de ndices eran vitales y localizables

Un factor importante es el anonimato de los usuarios


Hay disponibles tcnicas para la comunicacin annima
Se justifica para evitar censura y la libertad de expresin de los
individuos

Lmites del programa:


No se consideraron requisitos de consistencia entre rplicas
La disponibilidad puntual no era un factor crtico

(Noviembre 2014) DIT/UPM Redes P2P 13


3. Software de Intermediacin P2P
Capas de software para la gestin independiente de
aplicaciones con recursos distribuidos a gran escala:
Pastry, Tapestry, CAN, Chord y Kademlia.

Funcionalidad bsica:
Situar recursos en ordenadores distribuidos en internet
Enviar mensajes de los clientes
Aadir y eliminar nodos dinmicamente
Ofrecer un interfaz sencillo

Proporcionan garanta de entrega en un nmero


acotado de saltos

(Noviembre 2014) DIT/UPM Redes P2P 14


Requisitos No-Funcionales
Escalado global
Se quiere explotar los recursos de un gran nmero de nodos
Reparto de carga
Seleccin aleatoria de los recursos
Uso de rplicas para recursos muy utilizados
Optimizar la interaccin entre nodos cercanos
Situar recursos cerca de los nodos que ms los usan
Adaptarse a disponibilidad de los nodos
Servicio adecuado con disponibilidad de nodos impredecible
Seguridad de datos en entorno distribuido:
Basada en cifrado y autenticacin
Servicio annimo y resistente a censura

(Noviembre 2014) DIT/UPM Redes P2P 15


Software de Intermediacin P2P
El conocimiento de los objetos se debe partir y
distribuir por la red
Cada nodo mantiene un subconjunto de esta informacin
Alto grado de replicacin

En la seleccin del computador para las rplicas se


considera su volatilidad, su grado de confianza,
reparto de carga y localidad del almacenamiento y
uso.
Los recursos se identifican con un GUID
Se calculan como una firma segura a partir de su estado
Los convierte en auto-certificables

(Noviembre 2014) DIT/UPM Redes P2P 16


Enrutado en redes P2P
Algoritmo routing overlay
Asegura que se puede alcanzar un objeto, mediante una ruta
compuesta por una secuencia de nodos
Se emplea conocimiento local para crear la ruta
Se basa en DHT: Tablas hash distribuidas

Se usan GUID para identificar nodos y objetos


Son identificadores opacos o puros

Funciones adicionales del sistema:


Se localiza un nodo que contiene un objeto, dado su GUID
Para publicar un objeto se calcula el GUID y se anuncia
Cuando un objeto se borra, no debe volver a estar disponible
Los nodos se unen y abandonan el servicio dinmicamente

(Noviembre 2014) DIT/UPM Redes P2P 17


Tablas Hash Distribuidas
El GUID se emplea para localizar el objeto
El objeto se almacena en el nodo ms cercano a GUID y los r
ms cercanos
r es el factor de replicacin

Interfaz:
put(GUID, data)
El dato se almacena en rplicas en todos los nodos
responsables del objeto identificado mediante GUID
remove(GUID)
Elimina todas las referencias asociadas a GUID y la informacin
asociada
value = get(GUID)
Los datos asociados a GUID se recuperan de uno de los nodos
que lo mantienen.

(Noviembre 2014) DIT/UPM Redes P2P 18


Localizacin de Objetos Distribuidos
La asignacin de nodo se hace fuera del nivel de
enrutado
Interfaz
publish(GUID)
El nodo en el que se ejecuta esta operacin almacena el objeto
asociado a GUID
unpublish(GUID)
Hace al objeto asociado a GUID inaccesible
sendToObj(msg, GUID, [n])
Se realiza una invocacin a un objeto para acceder al mismo.
Puede ser una peticin para abrir una conexin TCP, para transferencia
de datos o para retornar un mensaje con informacin de estado del
objeto.
El parmetro [n], se incluye si se quiere enviar el mensaje a n rplicas

(Noviembre 2014) DIT/UPM Redes P2P 19


Esquemas de Enrutado
Enrutado por prefijo:
Para buscar el siguiente nodo se usa parte del GUID
Se emplea una mscara que se incrementa en cada salto

Otros esquemas emplean otras mtricas de distancia


CHORD: diferencia numrica entre los GUID origen y destino
CAN: Distancia en un espacio d-dimensional donde se sitan
los nodos

La bsqueda del GUID de un nodo a partir de la del


objeto:
Se puede almacenar de forma distribuida
BitTorrent: se obtiene un fichero con los detalles: GUID y nodo
con informacin de la situacin del objeto

(Noviembre 2014) DIT/UPM Redes P2P 20


4. Pastry: Sw Intermediacin P2P
Los nodos y objetos tienen un GUID de 128 bits

Enva los mensajes en O(log N) pasos

Emplea un protocolo de transporte (normalmente


UDP)
Los mensajes se envan a un nodo cercano, segn el
GUID. Es una distancia virtual
La tabla de enrutado se rellena con nodos cercanos,
segn la distancia de la red
El algoritmo de enrutado se explica en dos fases:
Forma simplificada
Forma completa

(Noviembre 2014) DIT/UPM Redes P2P 21


Enrutado: Forma Sencilla
Cada nodo activo almacena un conjunto de hojas:
Un vector L, de tamao 2l, con GUID y direcciones IP
de los nodos con GUIDs ms cercanos
Este vector se mantiene, cuando hay altas y bajas

El espacio de GUID se considera circular

Cuando un nodo A recibe un mensaje M para D:


Comprueba si el GUID de D coincide con A o est en el conjunto
de hojas
Se manda al nodo que tenga un GUID ms cercano

Se necesitan del orden de N/2l saltos

(Noviembre 2014) DIT/UPM Redes P2P 22


Enrutado Circular
0 FFFFF....F (2128-1)

D471F1

D467C4
D46A1C

D13DA3

65A1FC

(Noviembre 2014) DIT/UPM Redes P2P 23


Enrutado complejo
Cada nodo de Pastry incluye una tabla de enrutado:

Mantiene un par [GUID, IP] para un conjunto de nodos


distribuidos en el espacio de enrutado
Mayor densidad de nodos cercanos

La tabla:
Tantas filas como dgitos hexadecimales en el GUID
15 columnas

La tabla fomenta la localidad

(Noviembre 2014) DIT/UPM Redes P2P 24


Tabla de Enrutado (4 filas)

(Noviembre 2014) DIT/UPM Redes P2P 25


Ejemplo de Enrutado

0 FFFFF....F (2128-1)
Ruta de un
mensaje del nodo
D471F1
65A1FC al
D467C4
D46A1C D462BA
D46A1C.
Con una tabla
D4213F
bien organizada
se puede enviar
en log16(N) saltos
D13DA3

65A1FC

(Noviembre 2014) DIT/UPM Redes P2P 26


Algoritmo de enrutado
Gestin en A de un mensaje M enviado a un nodo D

R[p,i] es un elemento de la tabla de enrutado


si (L-l < D < L+l){ // el destino est en el conjunto de hojas
Enviar M al elemento Li cuyo GUID sea ms
cercano a D o a A}
else {//Usar la tabla para mandar M a nodo con GUID mas cercano
buscar p, el tamao del prefijo comn mayor de
D y A, e i, el (p+1) dgito hexadecimal de D;
si R[p,i] null {enviar M a R[p,i]}
else { // No hay entradas en la tabla de rutas
Enviar M a un nodo en L o R con un prefijo
comn de longitud i y con un GUID ms
cercano}

(Noviembre 2014) DIT/UPM Redes P2P 27


Integracin de Nodo
Nodo X se quiere integrar y conoce a nodo A

X manda un mensaje join a A con GUID de X como


destino y llegar a Z, que es el nodo ms cercano.
A, Z y los nodos en la ruta (B, C, ...) mandan a X
informacin de su tabla y lista de hojas.
X los recibe y construye su tabla de ruta:
X es cercano a A, por lo que puede usar su fila 0
Usa la fila 1 de B, etctera.

Para la lista de hojas, usa la de Z, que es cercano

Manda la lista y la tabla a todos los nodos en las


mismas, para que actualicen contenidos
(Noviembre 2014) DIT/UPM Redes P2P 28
Cada de un Nodo
En caso de cada hay que reparar la lista de hojas

Algoritmo:
X descubre que falla L
X trata de encontrar la lista de L o avisa a nodo L cercano a L
L avisa a nodos cercanos, para que actualicen lista

Los fallos en la tabla de rutas se hace cuando se


descubre el fallo.
Se manda el mensaje a otra entrada de la misma fila

Los nodos mandan mensajes estoy vivo para facilitar


deteccin

(Noviembre 2014) DIT/UPM Redes P2P 29


Bibliografa
Captulo 10, G. F. Coulouris, J. Dollimore y T.
Kindberg, G. Blair. Distributed Systems. Concepts
and Design. Quinta edicin. Addison Wesley. 2012.
James Kurose and Keith Ross. Computer
Networking: A Top-Down Approach, Quinta
edicinn. Addison Wesley, 2010

(Noviembre 2014) DIT/UPM Redes P2P 30

Você também pode gostar