Você está na página 1de 60

+

Sistemas Distribuidos
Sistemas P2P
Rodrigo Santamara
+ Sistemas P2P
Introduccin
Napster
BitTorrent
Middleware

2
+ 3

Introduccin

n Un sistema peer-to-peer (P2P) es un SD en el que todos los


elementos interconectados tienen el mismo papel
n En contraposicin a un modelo cliente-servidor

n Objetivos
n Posibilitar la comparticin de datos y recursos a muy gran escala
n Se eliminan los servidores y su infraestructura
n Proporcionar servicios y aplicaciones distribuidas utilizando
datos y recursos computacionales disponibles en ordenadores
personales y estaciones de trabajo en Internet
n Explotar recursos en las fronteras de Internet: almacenamiento,
ciclos, contenido, presencia humana [Shirky, 2001]*

* Sobre el uso de presencia humana ver el Turco de Amazon y sus aplicaciones como tenthousandcents:
https://en.wikipedia.org/wiki/The_Turk
https://en.wikipedia.org/wiki/Amazon_Mechanical_Turk
http://www.tenthousandcents.com/
+ 4

Introduccin
Ventajas respecto al modelo cliente servidor

n La expansin de un servicio popular en un sistema cliente-


servidor plantea problemas en costes de administracin y
recuperacin de fallos

n Las restricciones de ancho de banda que suponen los


servidores, sobre todo en servicios populares, es importante
n Es un problema incluso para servicios a nivel de aplicacin (a
distintos grados) tales como Google, eBay o Amazon.
+
Ventajas
Introduccin

http://www.dailymail.co.uk/sciencetech/article-
2047927/BlackBerry-outage-update-Service-finally-restored-
5

3-days.html
+ 6

Introduccin
Ventajas

http://mashable.com/2012/12/11/gmail-outage-chrome-crash/#B94dzZEHQgq6
http://mashable.com/2009/09/01/gmail-outage-google-statement/#LpXTcG5tXgqB
+ 7

Introduccin
Aspecto clave

n Como la informacin no est almacenada slo en unos


cuantos servidores, su ubicacin y recuperacin no es trivial

n ste es un aspecto clave del diseo de sistemas P2P:


n Servicio totalmente descentralizado y auto-organizado
n Con matices
n Equilibrio dinmico de las cargas de almacenamiento y
procesamiento entre todas las computadoras del sistema
+ 8

Introduccin
Caractersticas de un sistema P2P

n Todo usuario contribuye con recursos al sistema

n Todos los nodos tienen las mismas capacidades y


responsabilidades funcionales

n Su correcto funcionamiento no depende de la existencia de


ningn sistema administrado de forma centralizada

n Puede ser diseado para ofrecer un grado limitado de


anonimato a los proveedores y usuarios de los recursos

n Su funcionamiento eficiente se basa en su algoritmo para la


ubicacin de datos y el acceso equilibrado a los mismos
+ 9

Introduccin
Volatilidad y replicacin en un sistema P2P

n Recursos voltiles: sus propietarios no garantizan que vayan


a permanecer encendidos, conectados o libres de fallos

n El servicio P2P no garantiza el acceso a recursos individuales


n Pero se puede disear para minimizar la probabilidad de fallo de
acceso a un recurso replicado

n Esta aparente debilidad se torna en fuerza


n Si la replicacin se utiliza para minimizar fallos (incluso bizantinos)
+ 10

Introduccin
Historia

n Antes de 1999
n Algunos servicios para Internet relajaban la centralizacin con
arquitecturas multi-servidor tolerantes a fallos
n DNS, Usenet
n Aparecen algoritmos para procesamiento distribuido descentralizado
n P. ej. el algoritmo de consenso de Lamport [1989]

n El potencial de los sistemas P2P llega cuando hay un nmero


significativo de usuarios conectados a la red por banda ancha
n Esto ocurre alrededor de 1999 en EEUU
n En 2004, alrededor de 100 millones en el mundo
n En 2010, alrededor de 500 millones (7% de la poblacin mundial)*
n En 2014, 750 millones (10% de la poblacin mundial)**
n Mediante conexin mvil: 2300 millones**

* http://broadband.cti.gr/el/download/broadbandshortreport2010.pdf
** http://www.itu.int/en/ ITU-D/Sta tistics/Documents/statistics/2015/Fixed_broadband_2000-2014.xls
+ 11

Introduccin
Historia

n Primera generacin: definicin bsica de P2P


n Napster [1999]

n Segunda generacin: mejoras en la escalabilidad, anonimato


y tolerancia a fallos
n Freenet [2000], Gnutella, Kazaa [2003] y BitTorrent [2003]

n Tercera generacin: capa de middleware para la gestin de


recursos distribuidos descentralizados
n Pastry, Tapestry [2004], Chord [2001], Kademlia [2002]
+ 12

Introduccin
Aplicaciones

n Intercambio y bsqueda de archivos


n Napster, BitTorrent, eDonkey

n Voz
n Skype, VoIP

n Sistemas de archivos distribuidos


n Freenet, CFS

n Conectividad
n Redes ad hoc
+ Sistemas P2P
Introduccin
Napster
BitTorrent
Middleware

13
+ 14

Napster

n Desarrollado por John y Shawn Fanning [1999]


n Para intercambio de archivos de msica
n Escala: millones de usuarios, miles compartiendo archivos

n Arquitectura
n Indexacin centralizada
n Archivos proporcionados por los usuarios y almacenados en sus
equipos
+ 15

Napster
Modo de operacin

Coulouris et al. 2011


+ 16

Napster
Caractersticas

n Servidores de ndices
n ndices unificados para cada archivo
n Varios servidores replicados (requisitos de consistencia mnimos)
n Cuello de botella / incoherencias

n Localidad en la red
n N de saltos (hops*) entre el cliente y el servidor de archivos
n Se asignan servidores lo ms cercanos al cliente
n Este mecanismo sencillo de distribucin de carga da al servicio un alto
grado de escalabilidad

n Diseo fundado en archivos de msica


n Los archivos no se actualizan sin problemas de concurrencia
n La disponibilidad no es una prioridad sin problemas de rendimiento

*Se entiende como un salto o hop cada vez que un paquete de datos tiene que
pasar por un router o pasarela para llegar de un ordenador a otro
+ 17

Napster
Legado

n Primer servicio que demostr la necesidad y factibilidad de


soluciones P2P para las demandas de los usuarios
n Fue cerrado por problemas
legales
n Derechos de autor
n Responsabilidad del sistema
en las acciones de sus
usuarios
n Anonimato

n Fusionado con Rhapsody,


una tienda de msica
online, en 2011
n Actualmente ofrece un
servicio similar a Spotify
+ 18

Napster
P2P y problemas de copyright

n Napster sufri muchas dificultades legales por violar los


derechos de autor
n Tesis de Napster: Napster no es responsable de la infraccin de
derechos de autor porque no participa en el proceso de copia
n Refutacin del tribunal: El indizado de los recursos a travs de
servidores es parte primordial del proceso de copia

n Segunda tesis de Napster: Compartir no es una infraccin de


derechos de autor, pues no es una accin comercial
n Refutacin del tribunal: Compartir a gran escala es una accin
comercial, aunque no haya beneficios
+ 19

Napster
P2P y problemas de copyright

n Si Napster hubiera separado totalmente el proceso de copia


n No habra sido responsable de las infracciones individuales, las
acciones legales slo se podran dirigir a los usuarios finales
n eMule o BitTorrent contemplan esta separacin

n Si Napster hubiera asegurado el anonimato de los usuarios


n El seguimiento de los usuarios finales sera muy difcil
n Estrategia contra leyes que persiguen al usuario final

n Independientemente de la legitimidad social o moral


n El anonimato es una buena herramienta para evitar la censura
n El anonimato es una buena herramienta para acciones fuera de la ley
+ Sistemas P2P
Introduccin
Napster
BitTorrent
Middleware

20
+ 21

BitTorrent

n Protocolo P2P para compartir archivos de gran tamao


n Fundamentalmente archivos multimedia
n Diseado por Bram Cohen [2001]
n Ms de 150 millones de usuarios activos en 2012
n Entre el 43 y el 70% del trfico en Internet (2009) se debe a
redes P2P (principalmente BitTorrent)1

n Cliente BitTorrent
n Cualquier programa que implemente el protocolo BitTorrent
n Capaz de preparar, transmitir y solicitar cualquier archivo
n Peer: cualquier computador con una instancia de cliente
n http://en.wikipedia.org/wiki/Comparison_of_BitTorrent_clients

1http://www.ipoque.com/sites/default/files/mediafiles/documents/internet-study-2008-2009.pdf

http://torrentfreak.com/bittorrent-traffic-surges-after-limewire-shutdown-110517/
+ 22

BitTorrent
Chunks, trackers y archivos torrent

n El manejo de archivos grandes se hace dividindolos en


trozos (chunks) de igual tamao (64KB 4MB)
n Los clientes pueden descargar varios chunks en paralelo desde
diferentes sitios

n archivo torrent: resumen de un archivo compartido


n Nombre y longitud
n URL del tracker: servidor centralizado requerido que coordina la
distribucin del archivo
n Checksum de cada chunk, obtenido mediante un algoritmo de
encriptado (tpicamente, SHA-1)
+ 23

BitTorrent
Seeder, leecher y swarms

n Respecto a un determinado archivo un peer puede ser


n Seeder: peer con una copia completa de un archivo
n Initial seeder: primer seeder con una copia completa
n Leecher: peer con una porcin de chunks del archivo

n Torrent o Swarm: conjunto de participantes (trackers,


seeders y leechers) involucrados en la descarga de un
archivo

n Video sobre cmo funciona BitTorrent:


n http://vimeo.com/15228767
+ 24

BitTorrent
Trackers y distribucin de archivos

n Distribucin de un nuevo archivo por el initial seeder


1. Crea un archivo .torrent para el archivo
2. Conoce o prepara un servidor tracker que almacenar ese archivo,
para que los peers puedan encontrar la primera copia del mismo
3. Sube el initial seed o primera copia del archivo al tracker
n O bien (normalmente) slo sube su direccin
4. Publica el archivo .torrent en una web anunciante, que contendr
la informacin del tracker en la que se encuentra la primera copia
5. El peer se comunica con el tracker para obtener informacin de los
peers que almacenan copias del archivo (el swarm)
n Cada vez que un peer se comunica con el tracker, este guarda su
informacin, modificando el swarm de este torrent
6. Depus de obtener la informacin de los peers que contienen el
archivo, la comunicacin entre peers contina sin necesidad del
tracker.
n Sin embargo, el peer se puede poner en contacto peridicamente
con el tracker para actualizar el swarm u obtener estadsticas
+ 25

BitTorrent
Ejemplo announce: www.pirateBay.com
name: nosferatu.avi
1 length: 603M
pieces: 3 of size 201M each
checksum: YNCKHTQCWBTRNJIV4WNAE52SJUQCZO5C

ordenador personal de Lady Seed


(initial seeder)
nosferatu.avi
2-3 4

Anunciante, tracker e
name peers
initial seeder pueden
nosferatu.avi IP de Lady Seed
ser el mismo o distintos

www.pirateBay.com www.seriesJuanito.com
(tracker) (anunciante)
+ 26

BitTorrent
Ejemplo

name peers ordenador personal de Lady Seed


(initial seeder)
nosferatu.avi IP Lady Seed
IP Mr Sinde

6

www.pirateBay.com www.seriesJuanito.com
(tracker) (anunciante)

ordenador personal de Mr. Sinde


(leecher)
+ 27

BitTorrent
Ejemplo

name peers
nosferatu.avi IP pirateBay ordenador personal de Mr. Brown
IP Mr Sinde (leecher)
IP Mr Brown

6
www.pirateBay.com www.seriesJuanito.com
(tracker) (anunciante)

ordenador personal de Mr. Sinde


(seeder)
+ 28

BitTorrent
Estrategias

n Tit-for-tat
n Los peers que ms colaboren (que ms subidas de archivos tengan)
reciben prioridad para la descarga de otros archivos.
n Estrategia clsica de cooperacin en teora de juegos
n colaboro contigo si colaboras conmigo, tomo represalias si tomas
represalias

n Optimistic unchoking
n Los peers reservan parte de su ancho de banda para enviar datos a
peers aleatorios
n De esta manera se previene la inanicin de peers que todava no
tienen archivos para compartir, poco ancho de banda, etc.

n Rarest first
n Cada peer prioriza la comparticin de los chunks menos frecuentes
dentro del swarm
+ 29

BitTorrent
Enlaces magnticos

n Identificacin de archivo por contenido (URN) en vez de


localizacin (URL)
n Ms precisamente, por el valor de checksum de sus contenidos
(infohash)
magnet:?xt=urn:sha1:YNCKHTQCWBTRNJIV4WNAE52SJUQCZO5C
eXact mtodo de
Topic encriptado

n Al crear un archivo, se genera y publica su enlace magnet

n Los clientes P2P resolvern la ubicacin del archivo (trackers) a


partir del enlace magntico, en vez de obtenerlo del .torrent
n El propio enlace magntico puede aadir direcciones de trackers
mediante el parmetro tr
n Pero lo normal es que la ubicacin se haga trackerless mediante DHT
+ 30

BitTorrent
Enlaces magnticos

n Ventajas
n Trackers ms ligeros (p. ej. todos los enlaces magnticos de
Pirate Bay ocupan menos de 90MB)
n Slo tienen que almacenar los hash
n Seguridad sobre la autenticidad de la descarga
n Unin de localizaciones distintas del mismo archivo (magnet)
n Confidencialidad sobre lo que se descarga (relativa)

n El enlace magntico, por s solo, no se libra del uso


centralizado de trackers
n Versiones trackerless
+ 31

BitTorrent
Versiones Trackerless

n El tracker es el punto crtico de BitTorrent, pues es el nico


aspecto centralizado del sistema.

n Desde 2005 existen versiones trackerless en las que cada


peer acta como tracker ligero*
n Se basan en una implementacin de DHT mediante Kademlia
n Bsicamente, la tabla que antes estaba en el tracker ahora va a
estar troceada entre todos los peers
n Tercera generacin de sistemas P2P

* http://www.afterdawn.com/news/article.cfm/2005/05/19/bittorrent_goes_trackerless
+ 32

BitTorrent
Anlisis

n BitTorrent es un protocolo de descargas, con diferencias


respecto a una descarga normal (p. ej. via FTP):
n Utiliza muchas peticiones de datos pequeas va TCP, a mquinas
distintas, en vez de una nica peticin a una nica mquina
n La descarga de chunks no es secuencial, si no aleatoria o basada
en rarest first

n Estas diferencias suponen


n Menor coste para el proveedor inicial del recurso
n Mayor disponibilidad y redundancia (si la escala es grande)
n Puede ser ms lento, al menos hasta que un torrent alcanza un
nivel de swarm grande
n Filosofa contraria al streaming (aunque desde 2011 hay
versiones que soportan streaming, como Torrent 3.0)
+ 33

BitTorrent
Debate

n En la versin tradicional de BitTorrent, al final tenemos un


punto centralizado como en Napster. Entonces
n Son las dos generaciones iguales en cuanto a este hecho?
n Por qu BitTorrent no ha sido denunciado y cerrado como
Napster?
+ Sistemas P2P
Introduccin
Napster
BitTorrent
Middleware

34
+ 35

Middleware P2P

n Plataforma para el acceso rpido a recursos en la red, en un


entorno totalmente descentralizado
n En vez de usar algoritmos y protocolos especficos (1G) o slo
parcialmente descentralizados (1G, 2G)

n Requisitos funcionales
n Simplificar la construccin de servicios que se implementan en
un sistema distribuido con varios nodos en una red extensa
n Garantizar la localizacin y comunicacin de los clientes con
cualquier recurso individual distribuido disponible para el
servicio
n Localizacin routing overlay (enrutado superpuesto)
+ 36

Middleware P2P
Requisitos no funcionales

n Escalabilidad global: millones de objetos, miles de hosts

n Equilibrio de carga

n Optimizacin en interacciones locales entre peers vecinos

n Adaptacin a cambios dinmicos frecuentes en la


disponibilidad de los nodos

n Seguridad de los datos en un entorno heterogneo de


confianza

n Anonimato, denegacin y resistencia a censura


+ 37

Middleware P2P
Routing overlay

n Algoritmo distribuido para la localizacin de nodos y objetos

n Routing (enrutado)
n El middleware se construye como una capa responsable de las
peticiones de enrutado desde un cliente a un nodo que tiene el
objeto requerido

n Overlay (superpuesto)
n Enrutado a nivel de aplicacin, perfectamente diferenciado del
enrutado a nivel de red (p. ej. el routing IP)
n Basado en conocimientos superpuestos de las localizaciones
+ 38

Middleware P2P
Routing overlay

Coulouris et al. 2011


Os recuerda a alguna solucin vista en temas anteriores?
+ 39

Middleware P2P
Routing overlay: tareas

n Alta de objetos
n Cuando un nodo da de alta un objeto, su proceso de routing overlay
le asigna un identificador (GUID) y se asegura de que sea accesible
por todos los clientes

n Baja de objetos
n Elimina todas las referencias al GUID y a sus datos asociados

n Bsqueda de objetos
n Cuando un cliente solicita un objeto, su routing overlay direcciona la
peticin a un nodo en que reside la rplica, a travs del GUID

n Unin/abandono de los nodos a un servicio


n Unin: se le dan algunas responsabilidades de otros nodos
n Abandono: sus responsabilidades se distribuyen entre los dems
+ 40

Middleware P2P
Routing overlay vs IP routing

IP Routing overlay
Escala IPv4 232 nodos >2128 nodos
IPv6 2128 nodos Espacio de nombres plano
Espacio jerrquico
Equilibrio de La carga de los routers Topologa disociada de trfico
carga depende de la topologa y (localizacin aleatoria de
su trfico asociado objetos)
Dinamismo Tablas actualizadas ~1hora Tablas actualizadas ~1s
Tolerancia a Fallo de 1 router tolerada Fallo de n routers tolerado
fallos Fallo de n routers costosa
Identificacin Identificacin nica GUID varios nodos host
de destinos IPnodo Enrutado al ms cercano
Seguridad Slo cuando todos los nodos Puede lograrse incluso en
son fiables entornos no fiables
Anonimato No es posible En grado limitado
+ 41

Middleware P2P
DHT

n Distributed Hash Table


n Tabla hash (pares nombre-valor) cuya administracin es una
responsabilidad distribuida entre varios nodos

n Es el modelo de datos ms comn para routing overlays


n Descentralizacin
n Alta escalabilidad
n Gestin dinmica de altas y bajas
n Tolerancia a fallos

n Utilizada acadmicamente en Pastry o Tapestry

n Implementaciones en otros mbitos: Kademlia


+ 42

Middleware P2P
DHT: particin

Clave Nombre Peer 1


Clave Dato
1 nosf.avi
1 nosf.avi
id=50

100 mozart.mp3 100 mozart.mp3

101 quijote.pdf Peer 2


Clave Dato

101 quijote.pdf
200
id=150

200
201
Peer 3
300 Clave Dato
201
id=250
300
+ 43

Middleware P2P
DHT: alta y baja de nodos

n Diseada para distribuir la carga (nmero de claves por nodo)


segn una medida de distancia entre claves d(k1,k2)
n d es independiente de la distancia geogrfica o la latencia de red

n A cada nodo se le da un identificador i


n Se le asignarn todas las claves k tales que d(i,k) < d(j,k) id ji

n Eliminacin o adicin de un nodo i


n Cambia slo el conjunto de claves propiedad de los nodos i+1, i-1
+ 44

Middleware P2P
DHT: alta de un nodo
Peer 1
Clave Dato
1 nosf.avi
id=50
Peer 4*
76 schubert.mp3
Clave Dato
100 mozart.mp3
76 schubert.mp3
id:100
Peer 2 124 hamlet.pdf
Clave Dato
101 quijote.pdf
id=150 124 hamlet.pdf
Peer 3
200 Clave Dato
201
id=250
*El nuevo peer obtiene la responsabilidad sobre
300
el espacio de claves ms cercano a l
Aunque aparezcan tachados, no necesariamente
implica que Peer1 y Peer2 descarten ese dato,
slo la responsabilidad ltima sobre el mismo
+ 45

Middleware P2P
DHT: alta y bsqueda de archivos

n Alta de un archivo de datos (data) con estado (status1):


n GUID o clave k=SHA1(status)
n Las claves son por tanto cadenas de 160 bits2
nSe puede usar el enlace magntico directamente como clave
n mensaje put(k, data) a un nodo que participe en la DHT
n Los nodos los van reenviando hacia el nodo n responsable de k
n Y se replica tambin en los r nodos ms cercanos a n

n Bsqueda de un archivo de datos con nombre (name):


n El cliente obtiene k3 y manda get(k) a un nodo DHT
n El mensaje se reenva hasta llegar al nodo responsable de k,
que responde con data
1Elestado puede ser cualquier caracterstica propia del archivo, generalmente su contenido o parte del mismo.
2Esmuy difcil que la clave obtenida no sea nica. Si utilizamos SHA1 es una probabilidad de 2 -160
(ver http://stackoverflow.com/questions/2479348/is-it-possible-to-get-identical-sha1-hash )
3Mediante algn sistema de indizado de nombres de archivo a claves tipo Napster o, mejor, BitTorrent
+ 46

Middleware P2P
DHT: bsqueda de archivos

quijote? SHA1 101


Clave Dato
cliente
get(101) 1 nosf.avi
id=50
100 mozart.mp3

Clave Dato
quijote.pdf 101 quijote.pdf
id=150

200

Clave Dato
201
id=250
300
+ 47

Middleware P2P
DHT: implementaciones
+ 48

Middleware P2P
Kademlia

n Maymounkov and Mazieres [2002]

n Implementacin muy extendida de DHT


n BitTorrent (lnea principal), Red Kad (eMule, aMule, MLDonkey)

n Caracterstica principal: la distancia entre claves es el XOR


n Comparte muchas de las propiedades de la distancia geomtrica
n Reflexividad: XOR(i,i) = 0
n Simetra: XOR(i,j) = XOR(j,i)
n Desigualdad triangular: XOR(i,k) XOR(i,j) + XOR(j,k)
n Es mucho menos costosa computacionalmente

n Bsqueda por distancias XOR


n Cada iteracin de bsqueda est 1 bit ms cerca del objetivo
n Red de 2n nodos n iteraciones de bsqueda (mximo)
+ 49

Middleware P2P
Kademlia: tablas de encaminamiento

n Tabla con tantas listas como bits del espacio de claves


n P. ej. 160 bits 160 listas

n Cada lista tiene varias entradas


n Cada entrada contiene la informacin de localizacin de un nodo
n Tpicamente su ID, direccin IP y puerto

n Para cada nodo, las entradas en la lista n corresponden a


nodos que difieren en el n-simo bit de su id con el nodo
n Lista 1 de los nodos (los ms alejados)
n Lista 2 de los nodos (los siguientes ms alejados)
n
+ 50

Middleware P2P
Kademlia: tablas de encaminamiento

n Ejemplo: claves de 3 bits


n Hasta 23 nodos posibles , 7 nodos participando (011 no activo)
n Listas (en gris) para el nodo 110
Tabla encaminamiento 110
Lista 1 000 001 010
Lista 2 100 101
Lista 3 111

lista 1

lista 2 lista 3

Editado a partir de: http://en.wikipedia.org/wiki/Kademlia


+ 51

Middleware P2P
Kademlia: k-buckets

n Las listas de nodos ms alejados estn muy pobladas


n Se limita el n de nodos en una lista a k la lista es un k-bucket
n Tendremos ms informacin de los nodos cercanos

n Si al almacenar un nuevo nodo, su k-bucket est lleno


n Slo se aade si algn nodo del k-bucket est de baja

n Si el nodo buscado no se encuentra en el k-bucket, se hace


una bsqueda en otros nodos

Tabla encaminamiento 110


2-bucket 1 000 001 010 Si el objetivo es 010,
tenemos que iniciar una
2-bucket 2 100 101
bsqueda de nodos
2-bucket 3 111
+ 52

Middleware P2P
Kademlia: bsqueda de nodos

n Objetivo: encontrar los k nodos ms cercanos a un recurso


1. Un nodo inicia la bsqueda de la clave del recurso preguntando
a los (normalmente =3) nodos de su tabla ms cercanos a la
clave
2. Cada uno de los nodos consultados devuelve k nodos de su
bucket ms cercano a la clave (aadiendo de buckets
adyacentes si no tuviera al menos k)
3. El nodo inicial selecciona, de los k nodos, los k nodos ms
cercanos a la clave y les hace de nuevo la peticin
n El proceso contina iterativamente hasta que no se obtiene un
grupo de nodos ms cercanos que en la consulta previa
n El resultado son los k nodos ms cercanos a dicha clave
+ 53

Middleware P2P
Kademlia: bsqueda de nodos (ejemplo)

110 buscando por


clave = 010 Tabla encaminamiento 000
k=2, =2 2-bucket 3 111 100
2
2-bucket 2 010
010 001
Tabla encaminamiento 110 2-bucket 1 001
2-bucket 3 000 001 2
Tabla encaminamiento 001
2-bucket 2 100 101 010 000
2-bucket 3 100 101
2-bucket 1 111
1 2-bucket 2 010
0) Ms cercanos a 010: 000 001
2-bucket 1 000
3) 000 001, 010 001, 010 000 010 010
1b
Tabla encaminamiento 010
3b) 010 010, 000 001 010 010 2b
2-bucket 3 100 101
000 001 2-bucket 2 000 001
Como 011 no
Los resultados de 3 y 3b son iguales, 2-bucket 1 existe, est vaca
termina la bsqueda
+ 54

Middleware P2P
Kademlia: bsqueda de recursos

n Igual que la bsqueda de nodos pero el proceso se detiene


cuando un nodo contiene el recurso buscado

n Cada recurso est almacenado en k nodos


n Permite a los nodos variar de forma dinmica sin afectar
significativamente a la disponibilidad de los recursos

n Cada cierto tiempo, un nodo que almacena un valor explora


la red para encontrar los k nodos ms prximos a la clave del
valor, y replicarlo en ellos
n De esta manera se compensa la salida de nodos
+ 55

Middleware P2P
Kademlia: anlisis

n En P2P de primera generacin, la bsqueda de nodos se


haca mediante servidores indexados (Napster)

n En P2P de segunda generacin, la bsqueda de nodos se


haca primordialmente preguntando a toda la red (flooding)
n Por ejemplo, en Gnutella

n Los middleware P2P implementan DHTs y protocolos como


Kamdelia que permiten buscar nodos
n De manera descentralizada
n Sin sobrecargar la red
+ 56

Middleware P2P
Generaciones

1G 2G 3G
Seccin Indizado Indizado (mediante Mnima o no hay
centralizada (integrado) ficheros) (trackerless)
Bsqueda de Saltos de IP Distancias y XOR y tablas de
nodos mediante indizado flooding encaminamiento
Tipo de Pequeos (msica) Cualquier tamao Cualquier tamao
fichero (chunks) (chunks)

En una versin trackerless, todo el proceso es absolutamente descentralizado?


+ 57

Resumen

n Un sistema P2P busca n Napster supuso el primer sistema


P2P exitoso, aunque conserva un
compartir ficheros estticos indizado centralizado y slo
de manera descentralizada y comparte ficheros pequeos
altamente escalable
n BitTorrent es el ejemplo ms
extendido de P2P 2G, estableciendo
n Cada nodo (peer) de un un sistema ms desacoplado
sistema P2P tiene las mismas (swarms) y adaptable a ficheros
reponsabilidades y grandes (chunks)
capacidades n El middleware P2P de 3
generacin extiende y estabiliza los
n Hay tres generaciones de P2P conceptos de la 2 generacin,
segn la evolucin en la descentralizando el proceso de
indizado (DHT) y estableciendo un
descentralizacin y enrutamiento ms eficiente
estandarizacin (routing overlay, tablas de
encaminamiento)
+ 58

Referencias

n G. Colouris, J. Dollimore, T. Kindberg and G. Blair. Distributed Systems: Concepts


and Design (5th Ed). Addison-Wesley, 2011. Captulos 10 y 20 (BitTorrent)

n K. Truelov, C. Shirky, Rael Dornfest and O.R. Resear. P2P Networking Overview.
Hftad, 2001

n Napster: http://en.wikipedia.org/wiki/Napster

n Distributed Hash Tables: http://www.linuxjournal.com/article/6797

n Kademlia (Maymounkov & Mazieres, 2002):


n http://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf

n DNS P2P
n Namecoin: https://en.wikipedia.org/wiki/Namecoin
n Opinin en contra: https://nohats.ca/wordpress/blog/2012/04/09/you-cant-p2p-the-
dns-and-have-it-too/
59
60

Você também pode gostar